GIT-TFS:需要在一个文件中的搁置挂起的更改

问题描述 投票:6回答:3

我想出来的git-TFS,我试图通过运行以下,以取消搁置搁置:

git tfs unshelve "Shelveset Name" shelf

我收到以下错误:

A shelved pending change on a file is required: $/path/to/dir/deleted

“删除”是在搁置删除一个目录。

我才刚刚开始使用git-TFS。我需要签入的是搁置,所以暂时我可以TFS独自做到这一点,但如果可能的话,我想知道什么可能什么,如果可能避免。

谢谢你的帮助。

git tfs git-tfs
3个回答
4
投票

此错误消息是不混帐TFS之一,但TFS之一(我只是看着源代码)。

我只是不记得TFS混帐究竟是如何管理搁置,因为自从我改用混帐TFS我不再使用此功能。这主要是由于这样的事实:搁置集是非常糟糕的设计:(我认为,从设计问题出现在你的问题!

随着搁置,这实际上是一堆关文件差异比较,你永远不知道什么是它被“产生”的根变更。所以,如果你尝试相当以后取消搁置它,你有一些问题(像我想你),因为一些文件或文件夹进行重命名或删除!

我认为,从我们试图用checkouted git的承诺的方式太新,取消搁置的事实出现在你的问题。

尝试检出在搁置日期大约提交,然后取消搁置!如果一切正常,你应该只需要衍合犯在你的分支(希望混帐更好地处理重命名,它承担了大部分的时间)。

如果它不工作,我不知道...

而互联网不帮助我们解决这个TFS错误消息:(

编辑:自那以后,我认为的git-TFS已得到改进,也许它取消搁置到正确的父提交。

EDIT2:研究太多之前,使用--force标志,可以解决一些边缘情况


3
投票

现在,您可以强制的git-TFS忽略这些错误

https://github.com/git-tfs/git-tfs/blob/master/doc/commands/unshelve.md

 --force   Get as much of the Shelveset as possible, and
           log any other errors

https://github.com/git-tfs/git-tfs/issues/419


2
投票

看来,TFS踩试图取消搁置包含已删除的文件搁置集。我做了以下和它的工作:

  • 取消搁置在Visual Studio(2012)
  • 排除任何被删除的文件
  • 再次搁置(从VS2012)
  • 使用git-tfs到搁置拉入本地的Git分支
  • 手动删除已经从原来搁置删除的文件(S)

一种痛苦,我知道,但它至少帮助我挽救搁置。对于背景下,这是从TFS到Git的迁移,使我们能够保留历史记录,并拉入搁置集远程分支机构,因此开发人员并不需要TFS浑不完全签入期间。

© www.soinside.com 2019 - 2024. All rights reserved.