gpt4 book ai didi

svn - Subversion,将文件标记为事实后删除或移动

转载 作者:行者123 更新时间:2023-12-03 14:00:56 29 4
gpt4 key购买 nike

假设在Subversion存储库中有两个文件:

workingcopy/
file1.txt
file2.txt


然后我在SVN外部重命名一个:

$ mv file1.txt fileA.txt


现在,SVN将file1.txt标记为丢失,将 fileA.txt标记为未版本控制

$ svn st
! file1.txt
? fileA.txt


据SVN所知,我删除了 file1.txt并创建了一个完全不同的文件 fileA.txt,因此它不知道跟踪文件之间的更改。



编辑:这确实有效,我只是无法正确拼写文件名:)

同样,如果删除文件

$ rm file2.txt
$ svn st
! file2.txt


SVN只知道文件丢失,并且尝试将其标记为已删除不起作用:


$ svn remove file2.txt
svn: 'file2.txt' does not exist




我知道在Mercurial中,您可以使用 --after标志将文件标记为移动,复制,删除等,无论Mercurial在工作副本中看到什么。

SVN中有类似的技巧吗?

最佳答案

也许您需要更新Subversion的版本:

$ svn --version
svn, version 1.6.16 (r1073529)

$ rm data.xml

$ svn status
! data.xml

$ svn rm data.xml
D data.xml

$ svn status
D data.xml


相同的东西不适用于重命名,但是编写一个可以做到这一点的shell脚本将非常容易:

#!/bin/sh

mv $2 $1
svn rename $1 $2


或者只是为了好玩,您可以将以下内容添加到.bashrc或.bash_profile中:

svn_mv_after() 
{
mv $2 $1
svn mv $1 $2
}

alias svnmva=svn_mv_after

关于svn - Subversion,将文件标记为事实后删除或移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6523738/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com