git-svn fetch没有引入最新版本

Sta*_*kii 20 svn git git-svn

当我执行一个

git svn fetch

从我的存储库,它什么也不返回,即使在svn下有新的提交也不会更新.

[root]# svn log -l 1  http://example.com/trunk/client-resources/resource-pa
    r12958 | ing | 2011-08-22 18:29:57 -0500 (Mon, 22 Aug 2011) | 1 line
    SRGENERAL-1468 adding more arrays for pa
[root]# git-svn fetch
[root]# git log -1
    commit be19ae4c7d1a3c3da6dd90389aebd6d76792cc71
    Author: sltin <sltin@44b83e5a-25ef-0310-8dbe-ee0aa4f92a64>
    Date:   Wed Jun 22 14:30:53 2011 +0000

    Fixing the classpath.

    git-svn-id: http://example.com/trunk/client-resources/resource-common@12406 44b83e5a-25ef-0310-8dbe-ee0aa4f92a64
Run Code Online (Sandbox Code Playgroud)

请注意版本差异.svn日志列出12958,git日志列出最新的svn版本为12406.

我可以重置为12406,然后重新获取:

[root]# git svn reset 12406
    r12406 = be19ae4c7d1a3c3da6dd90389aebd6d76792cc71 (refs/remotes/git-svn)
[root]# git svn fetch
        M       src/test/java/csl/resource/ioc/AbstractResourceIocTest.java
    r12977 = 1b21f560b0354b28fe1a272d7723b1e6fa90a99c (refs/remotes/git-svn)
        M       src/test/java/csl/resource/ioc/AbstractResourceIocTest.java
    r12978 = bf22ea0151a364eb1ca1af37a7a907d5b5cc7420 (refs/remotes/git-svn)
        M       src/test/java/csl/resource/ioc/AbstractResourceIocTest.java
    r12987 = ce922c2eae07f6c12dbbd4175a9c61055b563ee3 (refs/remotes/git-svn)
Run Code Online (Sandbox Code Playgroud)

当我检查日志版本时,它们没有变化.

如何让git-svn从svn获取最新版本?

编辑:

我找到了答案,svn数据被加载到一个非活动线程中,该线程通常会合并到活动分支中,而裸存储库中不存在该活动分支.我试图重置,但这也需要一个活动的分支.最后的答案是:

git reset --soft refs/remotes/git-svn
Run Code Online (Sandbox Code Playgroud)

kni*_*ttl 30

git svn fetch只复制本地对象数据库的新修订版,非常类似git fetch- 两者都只同步对象数据库.它不会更新您的分支和工作副本.要将新获取的更改添加到分支中,请使用git svn rebase; 它将在最新的svn版本之上重新应用所有本地更改.

git svn rebase当没有本地提交时会做快进,所以不应该破坏历史.或者,您可以使用git merge --ff-only git-svn快进到最新的svn修订版(并且当它不可快速转发时中止,即不是直接后代)

你应该只git svn reset在上游svn改变历史记录(svndump/svnadmin)时使用,你需要重新获取新的提交,但这几乎不会发生(否则责怪管理员!)


Sta*_*kii 7

我找到了答案,svn数据被加载到一个非活动线程中,该线程通常会合并到活动分支中,而裸存储库中不存在该活动分支.我试图重置,但这也需要一个活动的分支.最后的答案是:

git reset --soft refs/remotes/git-svn
Run Code Online (Sandbox Code Playgroud)