我需要使用特定文件的名称作为目录名称,并将该文件移动到全新目录中。
我的回购现在看起来像这样:
file1
file2
dir1/
dir1file1
search
source_code2
我需要得到这个:
file1
file2
dir1/
dir1file1
search/
search_contents
source_code2
我需要做的操作是:
mv search search_contents
rm search
mkdir search
mv search_contents search/
我想我能做到:
svn move search search_contents
svn del search
mkdir search
svn add search
svn move search_contents search/
有意义吗?
svn如何处理单个文件名上的几个命令? (不做提交)或者我应该进行中间提交吗?
答案 0 :(得分:2)
如果您尝试在不提交和更新中间的情况下执行此操作,您将收到如下消息:
svn:不能用不同类型的节点替换'search';该 必须提交删除并在添加之前更新父级 '搜索'
只需将您的svn命令列表更改为:
svn move search search_contents
svn commit -m "Renamed file"
svn up
mkdir search
svn add search
svn mv search_contents search
svn commit -m "done"
答案 1 :(得分:0)
事实证明,这些步骤可以在一个single commit中完成:
# variant 1
svn move search search-newname
mkdir search
svn add search
svn move search-newname search/search
svn commit -m "magic"
# variant 2
svn delete search
mkdir search
svn add search
svn copy "^/search@3" search/
svn commit -m "more magic"
事情是,我不确定,我不想搞砸回购,这个答案的信用在irc.freenode.net上的#svn频道默认
另外,我要感谢danilsh和wayita提到svnmucc。 svnmucc是一个可以组合列表中的几个命令的工具(cp,mv,rm等)