TFS-为实验开发分支:解决方案无法加载
免责声明:我坚持使用TFS,但我讨厌它。
我的源代码控制结构如下所示:
- / dev
- /发行
- /分支
- /实验升级
我从开发人员分支到实验升级人员,但没有碰到它。然后,我在开发人员中做了更多工作,并合并到实验性升级。 TFS莫名其妙地抱怨我在源和目标上都有更改,因此我必须解决它们。我为所有5个项目选择了"从源分支复制项目"。
我签出了实验性升级到本地文件夹,然后尝试在其中打开主解决方案文件。 TFS提示我:
"Projects have recently been added to this solution. Would you like to get them from source control?
如果我说是的话,它会做一些事情,但最终会失败,无法加载少数几个项目。如果我拒绝,我会得到相同的结果。
在两个分支中比较我的sln会告诉我它们是相等的。
谁能让我知道我在做什么错?这应该是一个简单的分支/合并操作...
TIA。
更新:
我注意到,如果在上面的对话框中单击"是",则项目将下载到源代码管理的$ /根目录下(即从dev&branch文件夹中删除)
如果我在分支中打开解决方案并删除死掉的项目,然后尝试重新添加它们(通过右键单击sln,添加现有项目,选择位于分支文件夹中的项目,则会出现错误...
Cannot load the project c:\sandbox\my_solution\proj1\proj1.csproj, the file has been removed or deleted. The project path I was trying to add is this: c:\sandbox\my_solution\branches\experimental-upgrade\proj1\proj1.csproj
这些项目在世界范围之外的指向是什么?解决方案文件与dev分支中的文件相同,并且这些项目可以正常加载。我还查看了vspscc和vssscc文件,但未找到任何内容。
有想法吗?
解决方案
回答
@Nick:尚未对此进行任何更改。我可能必须删除它并重新分支(但是我们真的不能在TFS中完全删除)
我不得不不同意……分支绝对是进行实验性更改的好习惯。搁架只是临时存储,如果我不想签入,将对其进行备份。但这需要在我们开发真实功能时进行开发。
回答
如果不了解解决方案设置的更多信息,我不确定。但是,如果我们有任何项目参考可以解释这一点。因为我们在"分支"下具有"实验升级"子文件夹,所以相对路径已更改。
这意味着当VS过去通常在.. \ .. \ project \中查找我们引用的项目时,现在必须在.. \ .. \ .. \ project \任何位置中查找。注意额外的.. \
要解决此问题,我们必须重新添加项目引用。我还没有找到更好的方法。我们可以删除它们并重新添加它们,或者转到属性窗口并更改它们的路径,然后重新加载它们。无论哪种方式,我们都必须在任何项目中重做对它们的引用。
另外,检查工作文件夹,以确保它没有将任何项目下载到错误的文件夹中。有时可能会发生这种情况...
回答
@本
我们实际上可以在TFS中进行完全删除,但是除非我们知道自己在做什么,否则强烈建议不要这样做。我们必须使用tf destroy命令在命令行中执行此操作
tf destroy [/keephistory] itemspec1 [;versionspec] [itemspec2...itemspecN] [/stopat:versionspec] [/preview] [/startcleanup] [/noprompt] Versionspec: Date/Time Dmm/dd/yyyy or any .Net Framework-supported format or any of the date formats of the local machine Changeset number Cnnnnnn Label Llabelname Latest version T Workspace Wworkspacename;workspaceowner
在执行此操作之前,请确保使用/ preview进行尝试。每个人都有自己的分支方法。我的是分支发布,并在development或者root文件夹中进行所有开发。听起来分支也很适合我们,只是解决方案文件被搞砸了,这可能是由于绑定问题和vssss文件造成的。
回答
有几件事。文件夹结构是否相同?我们可以成功删除和阅读项目参考吗?
如果创建解决方案,然后手动添加所有项目,那么该工作是否可行。 (这可能不可行,因为我们有超过100个项目的解决方案)。
完成分支后的另一件事(可能很愚蠢),我们提交了吗?我想知道我们是否分支但未检入,然后合并,然后当我们尝试检入时,TFS令人困惑。
回答
@凯文:
This means when VS used to look for your referenced projects in ....\project\whatever it now has to look in ......\project\whatever. Note the extra ..\
我们可能会在此处介绍一些内容,但是并不能解释为什么某些项目会加载而其他项目不会加载。我还没有发现它们之间的关联。
我想我将尝试重新添加项目,看看是否可行。
回答
@Cory:
我认为这就是我要尝试的...我有大约20个项目,还有8个左右尚未加载。文件夹的结构从根开始是相同的...即:在DEV之外没有任何引用。