git-svn fetch ist nicht das ziehen in den neuesten Versionen
Wenn ich ausführen ein
git svn fetch
aus meinem repository, es gibt nichts und wird nicht aktualisiert, obwohl es neue commits
unter 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
Hinweis: die version Unterschiede. Der svn log-Listen 12958 und die git log listet die aktuellen
svn-version als 12406.
Ich tun kann mit einem reset-12406 und dann eine neue Holen:
[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)
Und wenn ich überprüfen Sie die Protokoll-Versionen, Sie sind unverändert.
Wie bekomme ich die git-svn zu ziehen, die in den neuesten Versionen aus dem svn?
Edit:
Ich die Antwort gefunden, die svn-Daten geladen wird, in einem inaktiven thread, der normalerweise sein verschmolzen in den aktiven Zweig, der nicht vorhanden ist in einem bare-repository. Ich habe versucht einen reset, aber das braucht einen aktiven Zweig zu. Die Antwort war:
git reset --soft refs/remotes/git-svn
InformationsquelleAutor der Frage Starkii | 2011-08-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
git svn fetch
kopiert nur neue Revisionen an Ihren lokalen Objekt-Datenbank, die sehr viel wiegit fetch
– beide nur synchronisieren, Objekt-Datenbanken. Es wird nicht aktualisieren Sie Ihre branch und der Arbeitskopie. Um die neu abgerufenen änderungen in Ihren Zweig zu bringen, verwendengit svn rebase
; es wird erneut anwenden alle Ihre lokalen änderungen an neuesten svn-revision.git svn rebase
tun werden, ein schnell-vorwärts, wenn es keine lokalen commits, so sollte es nicht Durcheinander mit der Geschichte. Alternativ könnte mangit merge --ff-only git-svn
um einen schnellen Vorlauf, um die aktuelle svn-revision (und Abbrechen, wenn es nicht schnell forwardable, also nicht ein direkter Nachkomme)Sollten Sie nur verwenden
git svn reset
wenn upstream-svn geändert hat Geschichte (svndump/svnadmin), und Sie müssen re-fetch die neuen commits, aber das sollte fast nie passieren (sonst wird die Schuld der admin!!!)InformationsquelleAutor der Antwort knittl
Ich die Antwort gefunden, die svn-Daten geladen wird, in einem inaktiven thread, der normalerweise sein verschmolzen in den aktiven Zweig, der nicht vorhanden ist in einem bare-repository. Ich habe versucht einen reset, aber das braucht einen aktiven Zweig zu. Die Antwort war:
InformationsquelleAutor der Antwort Starkii
Ich glaube, Sie wollen
git svn rebase
. Dies unterscheidet sich vongit pull
aber ähnlich, dass beide beinhalten zwei Stufen (fetch remote und dann rebase oder merge).Können Sie auch Stellungswechsel nur holte schon verpflichtet:
Wenn Sie lokale commits, die noch nicht im SVN, git-svn wird replay (rebase), die auf die neueste SVN-commits.
InformationsquelleAutor der Antwort Matthew Flaschen
Hat das gleiche Problem hier im Jahr 2018 mit der neuesten git. Behoben durch entfernen der
.rev_map
undindex
Dateien und erneutgit svn fetch
.Irgendwie hat es geklebt, die auf einer falschen letzten svn-revision Verein in den cache. In meinem Fall war es der r32 revision, die sich tatsächlich wurde der r31 revision (weil r32 und r31 hat deutlich Verschieden von commit-Nachrichten, das ist, wie ich Sie erkannt) und es wurde mit r32 revision mit der commit-Nachricht aus der r31 revision.
Vorsicht:
Hat heute ein weiteres problem. Die
git pull origin trunk:master
in meinem Fall hat das zurücksetzen von änderungen, bevor Sie die Neuindizierung. So TUN Sie das NICHT, die ziehen. Machen dierebase
undpush
vor derpull
zu propagieren die Feste änderungen an das remote-repository.InformationsquelleAutor der Antwort Andry