git svn fetch conflict

Einstiegsfragen, Mathematik, Physik, künstliche Intelligenz, Engine Design
Antworten
Benutzeravatar
Jonathan
Establishment
Beiträge: 2353
Registriert: 04.08.2004, 20:06
Kontaktdaten:

git svn fetch conflict

Beitrag von Jonathan »

Ich benutze git-svn für diverse SVN-Repositories. Das klappt auch ganz gut, ich kann Änderungen hoch- und rutnerladen und alles ist gut. Probleme gibt es erst, wenn ich lokal bei mir weiter gearbeitet habe und in der selben Zeit jemand etwas ins Repository commited hat und ich meine Änderungen dann hochladen will. Dann passiert sowas wie das hier:
git svn conflict
git svn conflict
Also dass die Änderungen von ulfjorensen in einem Extra Branch (ist das hier das richtige Wort?) gelandet sind, ist ja irgendwie klar. Was ich nicht verstehe, ist der obere rote Punkt und der mit "stash" getaggte. Zu Stash hab ich was gefunden, versteh aber ehrlich gesagt noch nicht, wozu das gut sein soll, könnte man das nicht auch mit einem Branch hinbekommen?
Ich hatte so Probleme schon früher und hab dann so lange rumgespielt, bis das Repo zerschossen war, dann irgendwie die lokalen Änderungen rauskopiert, Repo gelöscht, neu ausgecheckt und die Änderungen dort eingefügt. Das möchte ich eigentlich nicht nochmal tun.

Konkret würde ich jetzt gerne wissen: Was genau ist passiert und was muss ich tuen, um meine lokale History wieder hinzubekommen, so dass ich alles commiten kann.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
BeRsErKeR
Establishment
Beiträge: 689
Registriert: 27.04.2002, 22:01

Re: git svn fetch conflict

Beitrag von BeRsErKeR »

Kannst du nicht lokal bei dir stashen und dann nochmal aus dem svn auschecken?

Also etwa so (habs grad nicht im Kopf):

git stash
git svn rebase
... lokal anpassen
git stash apply
git svn dcommit

Bevor du ins SVN commitest, solltest du vorher immer nochmal rebasen, um alle Änderungen auch lokal zu haben. Lokal kannst du dann mit git auch viel einfacher mergen usw. Mit git stash packst du quasi alle Änderungen zur Seite. Dann holst du dir die Neuerungen aus dem SVN und fügst dein Zeug wieder hinzu mit git stash apply. Den gesamten Ramsch kannst du dann ins SVN schieben.

Zur Not halt alles stashen, was von dir nach der letzten Synchronisierung gemacht wurde. Dann kommt das SVN auch nicht durcheinander.

Besser wärs natürlich ganz auf git umzusteigen. SVN ist doch wirklich viel zu umständlich. ;)
Ohne Input kein Output.
Benutzeravatar
Jonathan
Establishment
Beiträge: 2353
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: git svn fetch conflict

Beitrag von Jonathan »

Habs hinbekommen, vielen Dank :)
Ich hab mir in der hilfe nochmal angeschaut, was rebase macht (hab bisher immer fetch benutzt), da war ein nettes bebildertes Beispiel, was der Unterschied zwischen beiden Varianten ist. Stashing hab ich dann jetzt auch verstanden, früher wusste ich mir der Meldung "Do you want to stash changes?" immer nichts anzufangen.
Jetzt sind die Änderungen oben, und ich habe das Gefühl, wieder etwas mehr über git gelernt zu haben :)

Achja: Für eigene Sache benutze ich auch nur git, aber Assimp hat halt nur ein SVN Repository. Von daher kann man manchmal leider nicht ganz umsteigen.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: git svn fetch conflict

Beitrag von kaiserludi »

SVN ist kein bischen umständlich. Mann sollte bloß einen guten Client nutzen wie z.B. Tortoise.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Benutzeravatar
BeRsErKeR
Establishment
Beiträge: 689
Registriert: 27.04.2002, 22:01

Re: git svn fetch conflict

Beitrag von BeRsErKeR »

Naja aber wieso nicht gleich git nutzen? git kann alles was SVN kann nur besser und noch viele nützliche andere Dinge. Jedenfalls ist das meine objektive Erfahrung. Viele halten mMn an SVN fest, weil sie es schon lange nutzen und der Umstieg auf git eventuell ein paar Tage dauert. Bei meinem alten Arbeitgeber wurde auch von cvs/svn auf git umgestellt. Viele kamen damit nicht klar, aber die Leute die sich mal 2 Tage rangesetzt haben wollten danach nie wieder was anderes. ;)

Clients nutze ich für Versionsverwaltung eigentlich nicht. Maximal Viewer, die mir die Commits und Branches auflisten wie gitg oder gitk.
Ohne Input kein Output.
Benutzeravatar
Jonathan
Establishment
Beiträge: 2353
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: git svn fetch conflict

Beitrag von Jonathan »

kaiserludi hat geschrieben:SVN ist kein bischen umständlich. Mann sollte bloß einen guten Client nutzen wie z.B. Tortoise.
Ich glaube es ging eher darum, dass git + svn umständlicher ist, als nur svn. Aber wenn man sich damit abgefunden hat, ist es immer noch angenehmer zu benutzen, als svn, alleine weil die History so rattenschnell ist :) (und weil man nicht in jedem Unterordner einen .git Ordner hat, Gerüchte sagen allerdings, das sei im neuen SVN jetzt auch so).
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: git svn fetch conflict

Beitrag von kaiserludi »

BeRsErKeR hat geschrieben:Naja aber wieso nicht gleich git nutzen? git kann alles was SVN kann nur besser und noch viele nützliche andere Dinge. Jedenfalls ist das meine objektive Erfahrung.
Dass das so objektiv ist, wage ich mal stark zu bezweifeln.
Mir sagt das Konzept von git nicht wirklich zu.
Jonathan hat geschrieben:
kaiserludi hat geschrieben:SVN ist kein bischen umständlich. Mann sollte bloß einen guten Client nutzen wie z.B. Tortoise.
Ich glaube es ging eher darum, dass git + svn umständlicher ist, als nur svn. Aber wenn man sich damit abgefunden hat, ist es immer noch angenehmer zu benutzen, als svn, alleine weil die History so rattenschnell ist :) (und weil man nicht in jedem Unterordner einen .git Ordner hat, Gerüchte sagen allerdings, das sei im neuen SVN jetzt auch so).
Ja, SvN 1.7 Clients haben auch eine Datenbank statt Unterordner und sind dank dieser Tatsache auch um eingies schneller als 1. Clients geworden.
Wenn ich alle meine 24 derzeit ausgecheckten Repos mit zusammen ca. 30-40.000 Revisionen, 24GB, 344.200 Dateien und 61.364 Ordner mit Tortoise 1.7.x.x auf der über 5 Jahre alten Datenplatte auf einen Schlag update, dann dauert das unter 5min. Wenn man nun noch stattdessen eine SSD nutzt, dann gehts nochmal um eingies schneller.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Benutzeravatar
BeRsErKeR
Establishment
Beiträge: 689
Registriert: 27.04.2002, 22:01

Re: git svn fetch conflict

Beitrag von BeRsErKeR »

kaiserludi hat geschrieben:Mir sagt das Konzept von git nicht wirklich zu.
Was stört dich denn am git-Konzept?
Ohne Input kein Output.
kaiserludi
Establishment
Beiträge: 467
Registriert: 18.04.2002, 15:31

Re: git svn fetch conflict

Beitrag von kaiserludi »

BeRsErKeR hat geschrieben:
kaiserludi hat geschrieben:Mir sagt das Konzept von git nicht wirklich zu.
Was stört dich denn am git-Konzept?
Das Branch Konzept und Fehlen eines zentralen Server, was beides zu unnötig viel Merging Aufwand führt.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da
:)

"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Benutzeravatar
BeRsErKeR
Establishment
Beiträge: 689
Registriert: 27.04.2002, 22:01

Re: git svn fetch conflict

Beitrag von BeRsErKeR »

Was am Branching-Konzept? Zentraler Server? Es gibt doch meist ein zentrales Repo auf einem zentralen Server.
Ohne Input kein Output.
Benutzeravatar
eXile
Establishment
Beiträge: 1136
Registriert: 28.02.2009, 13:27

Re: git svn fetch conflict

Beitrag von eXile »

BeRsErKeR hat geschrieben:Zentraler Server? Es gibt doch meist ein zentrales Repo auf einem zentralen Server.
Ich finde es sehr schön, dass man auch unterwegs (ohne Internetverbindung) arbeiten kann, und das Repository genauso benutzen kann, als ob man mit dem Server verbunden wäre. Dann auf der Arbeit oder daheim ein push und alles ist auf dem Server.
Antworten