当前位置:  开发笔记 > 运维 > 正文

SVN就地导入和结账

如何解决《SVN就地导入和结账》经验,为你挑选了2个好方法。

使用Linux命令行和Subversion,是否可以获取目录并向其添加版本控制?

基本上,我想将目录导入新创建的存储库,但也要将目录作为工作副本而不必检查它.



1> DaedalusFall..:

假设您已经使用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

您的目录现在受版本控制!


我认为它需要一个尾随点,对吗?"svn co file:/// svn/foo/mydirname."
FWIW,如果您正在检查子目录(而不是repo的根目录),并且该目录不存在,则可以使用svn mkdir命令创建要检入的目录,例如:svn mkdir --parents https://svn.foo.com/svn/projects/myProject/trunk

2> 小智..:

是的,您可以将现有目录(包含内容)导入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'
    

完成.


您需要添加--force,否则svn将停止并抱怨"svn:无法添加文件'FILE':已经存在同名的无版本文件
推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有