【问题标题】:Best way to determine which party made code changes?确定哪一方进行代码更改的最佳方法?
【发布时间】:2014-12-20 01:25:56
【问题描述】:

我有一个场景,我希望有人能够帮助我思考并确定最佳处理方式。我使用的工具是 Visual Studio 2013 和 TFS。

我们有一位开发人员突然离开了我们的公司,他有很多尚未签入的客户项目的代码更改。我们在本地拥有包含他更改的代码库。我们还拥有带有最新代码的客户端 TFS 服务器。我没有关于他的更改的文档,所以我的目标是找到他所做的所有代码更改。请记住,我也无法访问他的机器,我只能访问他正在处理的本地代码库,其中包括他的更改。

我首先将他的代码与 TFS 上的客户代码进行比较,并寻找变化。然而,自从该开发人员开始从事该项目以来,客户在 2 个月内也对他们的代码进行了一些更改。因此,在这两个月内,他在本地进行了一些更改,客户也进行了一些更改,这些更改已在 TFS 上签入。

当我将他的代码与服务器上的最新代码副本进行比较时,我可以看到不同之处,但我似乎无法分辨出是谁进行了更改。如果修改了某个方法,我会看到 TFS 和此本地代码中存在不同的版本,但我不知道是谁进行了更改。客户是否对代码进行了更改,而 TFS 上的较新版本使我的版本看起来过时了?还是这个开发人员对代码进行了更改,使服务器代码看起来过时了?由于我们的开发人员所做的更改没有被签入,我没有记录显示谁对代码进行了更改。确定我们本地开发人员所做更改的最佳方法是什么?

所以,总结一下:我已经将他的本地代码与服务器代码进行了比较,并且看到了差异,但是客户在获得代码后也对代码进行了更改。所以他的代码和服务器代码之间的差异可能是由于他的更改或客户端的更改,但我不知道是哪个。

【问题讨论】:

  • 您不能只查看提交历史记录并查看所有签入(包括谁签入),然后深入了解变更集详细信息以查看已更改的文件吗?跨度>
  • 就我而言,这个离开的开发者没有提交或签入。
  • 所以你是说他的机器上有一堆待处理的更改?您可以将工作空间中的文件与服务器上的文件进行比较以确定差异。
  • 是的,完全正确,我已经将本地代码与服务器代码进行了比较,并且看到了差异,但是客户端在获得代码后也对代码进行了更改。所以他的代码和服务器代码之间的差异可能是由于他的更改或客户端的更改,但我不知道是哪个。
  • 那么为什么不获取他的本地解决方案的最新信息,以便它与服务器同步呢? IDE 将负责任何合并。

标签: visual-studio-2013 tfs


【解决方案1】:

我看到了一些可以让您的生活更轻松的方法,但这需要您知道您的开发人员最初下载的版本。使用该版本(变更集、标签、日期),您可以与本地工作区进行比较,并在服务器上找到对该版本的所有更改。

工作区版本

您可以从命令行启动差异(以及从 Visual Studio,但命令行更容易在 Stack Overflow 上发布):

tf folderdiff c:\sources "$/TFSProject/Path/To/Sources;C12345" /recursive
     /collection:http://your.client.tfsserver.com:8080/tfs/ProjectCollection
     /view:不同,仅来源

C12345 的位置,您可以输入用于在开发人员机器上创建工作区的变更集编号或标签(使用Llabelname 而不是Cnumber)或(近似)日期(使用@987654323 @)。

这将输出针对用于创建工作区的版本在本地更改的文件列表。现在您可以使用以下方法单独列出每个文件:

tf diff c:\sources\changedfile.cs /version:C12345

(如果您使用标签或日期,则使用与上述相同的版本规范)。

还有一个选项,如果工作空间仍然在 TFS 服务器上注册,那就是与工作空间版本进行比较:

tf folderdiff c:\sources "$/TFSProject/Path/To/Sources;Wworkspacename;owner" /recursive
     /collection:http://your.client.tfsserver.com:8080/tfs/ProjectCollection
     /视图:不同,仅来源`

接着是:

tf diff c:\sources\changedfile.cs /version:Wworkspacename;owner

您无需拥有该工作空间即可执行此操作,但服务器仍必须在服务器上拥有该工作空间的记录。您可以尝试使用以下命令查找工作区:

C:\Sources\>tf 工作区 /owner:avanade-corp\jesse.houwing /computer:jessehouwing /collection:http://your.client.tfsserver.com:8080/tfs/ProjectCollection 收藏:http://your.client.tfsserver.com:8080/tfs/ProjectCollection 工作区所有者计算机评论 ------------ ------------- ------------ -- -------------------------- 杰西霍温杰西霍温杰西霍温

上面的例子会导致:

tf folderdiff c:\sources "$/TFSProject/Path/To/Sources;WJESSEHOUWING;Jesse Houwing" /recursive
     /collection:http://your.client.tfsserver.com:8080/tfs/ProjectCollection
     /view:不同,仅来源

创建货架集

如果您确实可以选择访问系统(即使以其他用户身份登录),您可以获取工作区的所有权并创建更改的搁置集。然后,您可以在更新的工作区上取消搁置这些更改,Visual Studio 将提示您解决合并冲突。 TFS 将知道另一方进行了哪些更改,并会尽力自动合并更改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-24
    • 2012-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    • 1970-01-01
    相关资源
    最近更新 更多