为什么我能够两次创建相同的SVN分支?

时间:2008-12-02 12:16:07

标签: svn branch

我可以两次创建相同的SVN分支。我希望SVN不允许我再次创建相同的分支。请帮我解决这个问题。

2 个答案:

答案 0 :(得分:10)

来自SVN RedBook

  

Subversion没有分支的内部概念 - 它只知道如何制作副本。复制目录时,生成的目录只是一个“分支”,因为您将该含义附加到该目录。您可能会以不同的方式考虑目录,或者以不同的方式对待它,但对于Subversion来说,它只是一个恰好带有一些额外历史信息的普通目录。

     

由于这种复制机制,Subversion的分支作为存储库中的普通文件系统目录存在。

因此,当您创建分支“补丁”时,您可以在存储库中拥有多个目录“补丁”。

在一个区分大小写的操作系统中,当你在同一个父目录'patch'中创建两次,使用不同的情况(Patch与patch)时,可能会让你感到困惑。


为了更好地回答您的问题:

  

我希望SVN不允许我再次创建相同的分支。

如果你真的想要阻止任何“与案例相关的路径冲突”,你可以设置一个预提交钩子(也是triggered by a svn copy),就像这个一样,来自{ {3}}

<强> svn tools contrib

  • 检测与现有路径或其他新路径“冲突”的新路径。
  • 忽略已经“冲突”的现有路径
  • 如果检测到“碰撞”,则退出并显示错误代码和stderr诊断。

使用该钩子,您仍然可以创建多个具有相同名称的分支,但至少不在相同的父目录中,具有不同的大小写。

答案 1 :(得分:0)

在SVN中,分支(和标签)也只是副本。

SVN不知道分支是什么,它只知道副本。 SVN用户给这些副本赋予分支的含义,但它只是人们遵循的惯例,而不是SVN。