Version control 如果文件夹层次结构已更改,如何从特定变更集创建分支?

Version control 如果文件夹层次结构已更改,如何从特定变更集创建分支?,version-control,Version Control,我最近的任务是为我们的项目创建一个分支计划,其中一部分包括创建一些特性分支和发布分支。我还必须清理源代码管理树,以便分支能够自我包含。我基本上是从这个开始的: / ./src ./model ./processtemplates ./data ./otherfolders 我将结构更改为: / ./trunk ./src ./model ./data ./branches ./v1 ./release1 .

我最近的任务是为我们的项目创建一个分支计划,其中一部分包括创建一些特性分支和发布分支。我还必须清理源代码管理树,以便分支能够自我包含。我基本上是从这个开始的:

/
  ./src
  ./model
  ./processtemplates
  ./data
  ./otherfolders
我将结构更改为:

/
  ./trunk
    ./src
    ./model
    ./data
  ./branches
    ./v1
      ./release1
        ./src
        ./model
        ./data
      ./release2
问题是,我需要从特定的早期版本创建分支,但文件夹结构已更改,因此我无法获取/trunk文件夹的更改集来创建分支。我得到的确切错误消息是:“在指定版本的$/中找不到匹配的项。”


最好的方法是什么?我考虑过从最新的变更集创建一个分支,并将所有变更恢复到旧的变更集。我希望有一个更简单的方法。

在TFS 2008中,重命名和删除是一个危险的领域。您可能需要转到命令行才能执行此操作。查看历史记录,找出要从中进行分支的变更集,然后在命令行中执行以下操作:

mkdir c:\BranchFolder
cd c:\BranchFolder
tf.exe workspace /new /s:http://tfs:8080 BranchWorkspace
tf.exe workfold /map:"$/","C:\BranchFolder"
tf.exe branch "$/" "$/branches/v999" /version:Cxxxxxx /noget /noprompt
验证并签入

tf.exe workspace /delete BranchWorkspace
v999
替换为您想要分支到的任何文件夹,并将
xxxxxx
更改为相应的变更集编号


一如往常——当你在这些领域工作时,如果你不太确定结果会是什么,请在签入之前检查你的工作。

谢谢你的回复,但不幸的是,我仍然有同样的问题。我想要的变更集中不存在/trunk文件夹。它不需要。您可能需要做的是将版本号附加到“$/”(例如“$/;xxxxxx”)的末尾,这将告诉它使用该特定版本的版本作为起点。