获取之前在ignore-paths上添加的文件

时间:2013-05-08 17:23:26

标签: git svn

我们有一个大的svn存储库,我们在本地使用git和git-svn进行交互。

最近我创建了一个存储库但忽略了以trunk开头的文件。我修复了ignore-paths,因此它忽略了目录中继,而不是任何以trunk开头的文件。

现在我得到git svn"在提交中找不到"自提交git同步以来的错误有文件,但git缺少原始文件提交。

通常会使用git svn reset -rxxxx和git fetch -rxxxx,但这是一个两年前的存储库,我无法回滚到最初创建文件的时候。

如何让git从svn中删除文件?

2 个答案:

答案 0 :(得分:1)

创意1:

创建一个svn工作副本。然后:

svn rm <paths which you want un-ignore>
svn commit -m "ignore workaround"
svn merge -r COMMITTED:PREV .
svn commit -m "Reverting: ignore workaround"

然后只需修改.git/config即可修改ignore-paths,然后修改git svn rebase

创意2:

只需将所有文件手动复制到svn repo的git repo中,提交它们并抛弃svn。

创意3:

不要担心并重置两年前的git repo。

答案 1 :(得分:0)

一种解决方案是:

  • 更新至最新版本git svn rebase
  • 手动复制文件(如果有的话,将其从.git/info/exclude删除)
  • 使用git commit
  • 添加并提交
  • 使用git svn dcommit
  • 提交他们

这应该会导致如下错误:

  

SVN的错误:RA图层文件已存在:文件X已存在W:   9166d48381296ed6038baf09425a6e6d84638c8c和refs / remotes / git-svn   不同,使用rebase :: 040000 000000   2ffb637dfc63727c4108c41c705a45e673e5dcbc   0000000000000000000000000000000000000000 D文件夹当前分支   主人是最新的。错误:并非所有更改都已提交   SVN,但是承诺的(如果有的话)似乎是成功的   集成到工作树中。请参阅以上消息   的信息。

git commit提交将存在,但git svn dcommit不会出现在上游svn存储库中(即不会发生任何事情,fugazi,仙尘,它不存在)。