【发布时间】:2010-10-15 06:33:57
【问题描述】:
使用 Linux 命令行和Subversion,是否可以获取目录并为其添加版本控制?
基本上,我想将目录导入到新创建的存储库中,但也希望目录成为工作副本,而无需检查它。
【问题讨论】:
-
为什么这个问题是社区维基?
标签: linux svn version-control
使用 Linux 命令行和Subversion,是否可以获取目录并为其添加版本控制?
基本上,我想将目录导入到新创建的存储库中,但也希望目录成为工作副本,而无需检查它。
【问题讨论】:
标签: linux svn version-control
假设您使用 svnadmin 在 /svn/foo/mydirname 创建了一个存储库,并且您想要对 /home/user/mydirname 进行版本控制(这就是您的意思吗?)。
然后执行以下操作:
cd /home/user/mydirname
svn co file:///svn/foo/mydirname . #This only creates the ".svn" folder for version control
svn add ./* #Tell svn you want to version control all files in this dir
svn ci #Check the files in
您的目录现在受版本控制!
【讨论】:
rm -rf 编辑我的目录以便结帐之前阅读此内容。
是的,您可以将现有目录(包含内容)导入 SVN 存储库,并将当前位置用作受版本控制的工作副本。如下所示:
假设您的(未版本化的)项目源位于 /home/user/projectx,并且您的存储库已在 file:///svnrepo 中准备就绪
首先,在项目树之外的某处创建一个空目录,例如 /tmp/empty。在您的 Subversion 存储库中导入该空目录:
cd /tmp/empty
svn import . file:///svnrepo/projectx
进入您填充的项目目录。现在查看您在第 1 步中创建的存储库位置:
cd /home/user/projectx
svn checkout file:///svnrepo/projectx .
这会将 .svn 文件添加到您填充的项目目录中,但它不会做任何其他事情,因此您现有的文件是安全的。
接下来,将包含文件的目录添加到存储库:
svn add *
svn commit -m 'initial commit'
完成。
【讨论】: