【问题标题】:How to see a user's check-in history in TFS w/ Git repositories如何在带有 Git 存储库的 TFS 中查看用户的签入历史记录
【发布时间】:2018-05-14 16:42:49
【问题描述】:

我有一个奇怪的用例,我正试图找到答案。我们过去使用直接 TFS 进行源代码控制,特别是 TFS 2015。所有项目都已转换为 Git 存储库,但它们仍存储在 TFS 中的单独集合中。我要做的是查看所有项目中用户的签入历史记录。我已经在上面找到了this question,但所有答案似乎都不适用于 Git。即使在对 Git 更友好的 Visual Studio 2017 中也是如此。

Team Foundation Sidekicks 为例。如果我将它指向我们存档的 TFS 集合,它将在其中看到所有项目。但如果我查看 Git 集合,它会显示为空。

了解 Git 的工作原理后,我强烈怀疑 TFS 目前仅用作存储机制。当您只查看一个项目时,它可以查找每个项目的签入历史记录,但它是通过执行 git.exe 或执行类似操作来实现的。所以它真的不知道每个项目中发生了什么。但我想我还是会问,以防我错了,或者有人对如何做到这一点有其他想法。

【问题讨论】:

    标签: git tfs version-control tfs-2015


    【解决方案1】:

    要查看某个用户提交的提交历史,您可以使用以下任何选项。

    选项 1:在 TFS 网页中过滤

    在 TFS 网页的 Code Hub 中打开 Git 存储库 -> 历史选项卡 -> 选择分支 -> 高级搜索 -> 选择用户 -> 查找。

    然后你会得到用户在某个分支上的提交历史。

    注意: 过滤网页中某个用户的提交历史是分支分隔的。所以你需要分别选择每个分支。如果你想显示某个用户跨分支的所有提交历史,你可以使用选项2列出的方式。

    选项2:从本地git repo查看

    如果你没有在本地克隆过TFS git repo,可以先通过git clone <repo URL>克隆。

    然后在本地 git repo 中,您可以通过以下任何命令从所有分支中获取用户所做的所有提交:

    git log --all --author="username"                              #Show commits made by the user for all branches
    git log --all --oneline --author="username"                    #Show each commit for one line
    git log --oneline --decorate --graph --all --author="username" #Keep branch structure
    

    【讨论】:

    • 太糟糕了,希望有一个更简单的解决方案。所以看起来“最好”的方法是从http[s]://{server}:{port}/tfs/{Collection}/_apis/projects?api-version=1.0获取项目列表,克隆每个存储库,使用选项2中的git log获取每个存储库上用户的所有提交,然后合并结果。
    猜你喜欢
    • 2017-11-25
    • 2012-01-25
    • 2014-01-03
    • 2023-03-19
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    相关资源
    最近更新 更多