我已经尝试了解为什么会发生这种情况但我不知道。但我可以解释如何重现这个问题。
首先,我创建一个项目(其中包含主干,分支和标签的文件夹)并将其添加到存储库。我将目录更改为主干。我将一个文件添加到版本控制然后进行提交。然后我决定建立一个分支(问:我创建分支时,我所在的目录是否重要?)。我将目录更改为项目(我的意思是,如果我看到分支,标签和主干)。而在项目目录中我做
svn copy https://repoURL/project_name/trunk/ https://repoURL/project_name/branches/newBranch -m "making new branch"
现在我将目录更改为branches / newBranch并执行
svn co https://repoURL/project_name/branches/newBranch
然后我决定将目录更改为项目(我的意思是,如果我看到分支,标签和主干),然后我做svn更新。这是发现阻碍工作副本的消息的地方。
我试着四处寻找,没有真正解释为什么。一切都是如何解决它。我想知道为什么我可以在一开始就预防它。
非常感谢。
$ svn update
Updating '.':
Skipped 'branches/newBranch' -- An obstructing working copy was found
At revision 30.
Summary of conflicts:
Skipped paths: 1
答案 0 :(得分:1)
问题是您通过嵌套来混合工作副本。这是一个不好的做法。此外,您的工作副本包含同一项目的多个分支。这也是一种不好的做法。
您不应该签出整个存储库的工作副本。不要检查存储库的根目录或项目的根目录。您不需要将所有项目的分支和标签放在同一个工作副本中。
您的工作副本可以立即切换到另一个开发分支/标签/其他。此外,Subversion存储库可以包含许多(非)相关项目,并且最好为每个项目都有一个专用的工作副本,而不是所有项目的单个工作副本。此外,您可以在计算机上拥有无限数量的工作副本。