将目录导入 Subversion 存储库

将目录导入 Subversion 存储库

我将一些旧源代码放入 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命令

  1. 您直接导入到存储库,每次导入都会生成新的提交
  2. WC(第一次进口前为空)是无用的,并且会增加零值在这个阶段
  3. 可能想要在你的仓库中有默认布局(至少部分)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命令添加这些版本。

相关内容