【发布时间】:2008-12-02 12:16:06
【问题描述】:
我可以创建两次相同的 SVN 分支。我希望 SVN 不会允许我再次创建相同的分支。请帮我解决这个问题。
【问题讨论】:
-
这到底是什么意思?这个问题很模糊,并且没有更具体的描述(理想情况下是示例路径和命令),我怀疑我们能否为您提供帮助。
-
我同意 Blair 的观点,您需要在此处详细说明您所做的工作。
我可以创建两次相同的 SVN 分支。我希望 SVN 不会允许我再次创建相同的分支。请帮我解决这个问题。
【问题讨论】:
来自SVN RedBook:
Subversion 没有分支的内部概念——它只知道如何制作副本。当您复制一个目录时,生成的目录只是一个“分支”,因为您将那个含义附加到它上面。你可能对目录有不同的看法,或者对它的处理方式不同,但对于 Subversion 来说,它只是一个普通的目录,恰好包含一些额外的历史信息。
由于这种复制机制,Subversion 的分支作为存储库中的普通文件系统目录存在。
因此,当您创建分支“补丁”时,您的存储库中可以有多个目录“补丁”。
您可能会感到困惑的是,当您在区分大小写的操作系统中使用不同的大小写(补丁与补丁)在同一父目录中创建两次“补丁”时。
为了更好地回答您的问题:
我希望 SVN 不会允许我再次创建相同的分支。
如果你真的想防止任何“与案例相关的路径冲突”,你可以设置一个pre-commit hook(也是triggered by a svn copy),就像这个,来自svn tools contrib
使用该钩子,您仍然可以创建多个具有相同名称的分支,但至少不在同一个父目录中,但大小写不同。
【讨论】:
在 SVN 中,分支(和标签也是)只是副本。
SVN 不知道分支是什么,它只知道副本。 SVN用户赋予这些副本分支的含义,但这只是人们遵循的约定,而不是SVN。
【讨论】: