我将一些旧源代码放入 Subversion 存储库。每个版本的代码都位于一个目录中,目录名是该版本的版本。我可以将每个文件添加到 Subversion,并在添加所有文件后提交:
mkdir workingCopy
svnadmin create repo
svn checkout file "///%CD%\repo" workingCopy
svn propset svn:ignore "*.obj" workingCopy
xcopy directory1\* workingCopy
cd workingCopy
svn add file1
svn add file2
...
cd ..
svn commit -m "version1" workingCopy
rem to by continue with directory2..directoryN
但这很麻烦,应该可以用svn import
。我找不到获取所有文件的正确参数:
rem all these commands fail
svn import -m "version_dir1" directory1 workingCopy
svn import -m "version_dir1" directory1 file:///workingCopy
svn import -m "version_dir1" directory1 file:///%CD%\workingCopy
cd workingCopy
svn import -m "version_dir" ..\direcotory1
我如何将整个目录树导入为 Subversion 修订版?
答案1
读小心描述svn import
命令
- 您直接导入到存储库,每次导入都会生成新的提交
- WC(第一次进口前为空)是无用的,并且会增加零值在这个阶段
- 你可能想要在你的仓库中有默认布局(至少部分)
trunk/branches/tags
,并且必须记住svnadmin create
不会建造创建的 repo 中的任何其他节点
假设:
%CD%\repo
是本地文件系统上的 repo-path/FULL/PATH/TO/directory1
.../FULL/PATH/TO/directoryN
是代码枚举版本的路径
您可以使用类似
svn import /FULL/PATH/TO/directoryX -m "Version X" file:///%CD%\repo/trunk
按正确(历史)顺序排列每个源目录
答案2
目录和存储库的实际完整路径不得包含空格字符。或者路径必须用引号括起来。
该svn import
命令用于将未版本化的树导入存储库。只能从目录树导入第一个修订版本。Svnimport
检查文件是否是存储库中的新文件。不支持后续导入相同文件。必须使用一系列svn commit
命令添加这些版本。