SVN将文件重命名为目录

时间:2012-04-28 17:35:31

标签: file svn repository rename

我需要使用特定文件的名称作为目录名称,并将该文件移动到全新目录中。

我的回购现在看起来像这样:

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如何处理单个文件名上的几个命令? (不做提交)或者我应该进行中间提交吗?

2 个答案:

答案 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等)