2010-01-19 63 views
41

我有一个项目Foo,我错误地创建了错误的标签。它应该已经阅读'rMMDDYYYY',但我将其标记为'YYYYMMDD'。在完成我的改变后,我意识到自己的错误。我现在想要移除tags目录下的YYYYMMDD文件夹,而是保留rMMDDYYYY文件夹。即如何在SVN中删除错误标记的目录?

前: 富/富/躯干/富/分支机构/富/标签/富/标签/ YYYYMMDD /富/标签/ rMMDDYYYY

后: 富/富/躯干/富/分支机构/ foo/tags/foo/tags/rMMDDYYYY

任何想法我能做到这一点吗?提前致谢!

+0

对于阅读手册中关于标签的章节可能很有用,它解释了标签与树的分支或其他副本没有区别:http://svnbook.red-bean.com/en/1.5/svn。 branchmerge.tags.html – wds 2010-01-19 09:27:33

回答

45

如果你想删除的目录,然后使用svn rm命令:

svn rm foo/tags/YYYYMMDD 
14

只要删除你不想要的标记和名称相同或不同的名称重新创建。如果你有tortoisesvn就像从repo浏览器中删除目录一样简单。然后创建一个新的标签。

+0

谢谢Shikar,但TortoiseSVN不适合我,因为我在Mac上。我会记住,如果我在接下来我在Windoze(sic!)机器上;) – freakwincy 2010-01-20 09:03:54

5

我假设你不能只是删除并重新添加目录(也许是因为工作副本已更改),或者你会这样做。因此,您至少有两个选项:

  1. 检出标记的修订版,将其从存储库中删除,然后将其重新添加到所需的位置。
  2. 使用svn mv命令:http://svnbook.red-bean.com/en/1.0/re18.html

注意,创建Subversion的标签实际上并没有复制文件;它只是创建指向这些文件的目录条目(请参阅“廉价副本”:http://svnbook.red-bean.com/en/1.0/ch04s02.html),因此您不必担心存储库的膨胀。

颠覆书(http://svnbook.red-bean.com)是一个令人难以置信的清晰和完整的参考。如果你还没有阅读,你可能会发现它是一个丰富的信息。

祝你好运!

+0

感谢Adam。没意识到我可以做一个svn mv。这将是理想的解决方案,但是因为我已经将它移动到已经存在的目录。尽管如此,它很好理解。猜猜我需要更多地在Subversion Book上刷一些小小的东西。 – freakwincy 2010-01-20 08:57:59

+1

有趣的是,昨天我遇到了一个非常类似的问题:需要将'https:// path/to/dir' - >'https:// path/to/my/dir'移到“svn mv”一个临时目录,svn mkdir https:// path/to/my',最后是一个“svn mv”。如果我没有先遇到你的问题,不知道我能够如此迅速地完成这项工作......所以谢谢你! – 2010-01-20 12:10:11

28
svn delete http://example.com/svn/tags/tag-to-delete -m "Tag no longer needed" 

是最好的方法。 See also here

+0

奇怪的是,从回购库中删除标签文件夹的另一种方法不起作用(操作似乎不可用),但是这个svn删除了。 – Schollii 2016-12-12 20:23:11