在我的subversion存储库中,我有标准的/trunk
,/branches
和/tags
文件夹以及一个标记,比如/tags/tag1
。
是否可以结帐/tags/tag1
,进行一些本地更改,然后直接提交作为另一个标记,比如/tags/tag2
?我可以不触摸行李箱或任何树枝吗?
另外,如果通常可以使用subversion,可以使用TortoiseSVN吗?
修改
如果可以使用TortoiseSVN完成,我认为可以从命令行完成。我需要使用哪些命令?
答案 0 :(得分:3)
是的,您可以执行此操作:签出标签,然后从工作副本中选择分支/标签,然后在“从以下位置创建存储库中的副本”部分和“到URL:”中选择“工作副本”字段输入新标记的网址。
但你为什么要这样做呢?通常,标签是代码库状态的“只读”快照,不应修改。
答案 1 :(得分:1)
可以从TortoiseSVN执行此操作。 转到在Windows资源管理器中本地修改的标记的位置。从TortoiseSVN上下文菜单中选择“分支/标记”。 现在选择TO url为'svn:// server / project / tag2'。 接下来,对于“在库中创建副本”,选择“工作副本”选项
答案 2 :(得分:0)
您可以创建从/tags/tag1
到/tags/tag2
的分支。您可以在不触及行李箱或任何现有分支的情况下执行此操作。
我们将此修补程序称为分支,因为/trunk
已经移动,但/tags/release-1.0
中的某些内容需要修复。因此,我们将从/tags/release-1.0
分支到/tags/release-1.0.1
。我们将修复并提交该标记。
答案 3 :(得分:0)
Subversion基本上将所有内容视为目录结构 - 标签只是结构中的另一个文件夹,恰好位于“tags”目录中。
因此,从技术上讲,您可以查看tags
目录,将一个标记文件夹复制到新文件夹,svn add
该新文件夹,然后提交它 - 这实际上会创建一个新的标记,基于旧文件。但是,你不会得到旧标签和新标签之间的链接(哪种有意义 - 标签不应该链接到任何东西,它们应该只是快照)。
如果您希望修订版本的良好进展,那么更好的方案是将旧标记复制到分支中;进行更改,提交分支,然后将分支复制回新标记。这将更准确地保留变化的历史。
答案 4 :(得分:0)
您可以从标签创建标签,但如上所述标签是"只读"快照如此更好第一个创建一个Trunc从早期的标签说标签1由"更新到修订版"并给出Tag1的特定rev no,然后对Trunc进行更改并且不使用svn update / commit of trunc简单地从trunc分支标签并选择工作副本并制作新标签。不要忘记在结尾处切换Trunc这种做法是为了与svn标签保持连续性。