当我执行一个
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)时使用,你需要重新获取新的提交,但这几乎不会发生(否则责怪管理员!)
我找到了答案,svn数据被加载到一个非活动线程中,该线程通常会合并到活动分支中,而裸存储库中不存在该活动分支.我试图重置,但这也需要一个活动的分支.最后的答案是:
git reset --soft refs/remotes/git-svn
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11807 次 |
| 最近记录: |