CVS und Subversion verfügen beide über eine praktische Funktion zum Zusammenführen, so dass beim Aktualisieren einer von Ihnen geänderten Quelldatei Änderungen, die andere an der gleichen Datei vorgenommen haben, zusammengeführt werden.Können CVS und Subversion so eingestellt werden, dass Leerzeichen beim Zusammenführen ignoriert werden?
Wenn jedoch Ihre Änderungen und die anderen nicht kompatibel sind - in der Regel, wenn Sie beide die gleichen Teile des Codes geändert haben - wird es einen Konflikt erstellen. Beide Abschnitte des Quellcodes werden in die zusammengeführte Datei eingefügt, und Sie müssen manuell sortieren, welche Änderungen beibehalten werden sollen. Alles soweit in Ordnung.
Mein Problem ist, dass einige von uns verschiedene Entwicklungsumgebungen verwenden (Netbeans versus vi, wenn Sie wissen müssen) und Netbeans hat eine automatische Einzugfunktion, die den Code erneut einprägt. Wenn wir also Änderungen zusammenführen, erhalten wir manchmal große Konflikte, die meist durch einfache Änderungen im Einzug verursacht werden und keine echten Änderungen am Code darstellen. Oft erzeugen diese Hunderte von Zeilen scheinbarer Konflikte, die manuell gelöst werden müssen, aber in der Regel sind es nur ein paar Zeilen echter Änderungen. Eine ähnliche Situation tritt auf, wenn der Editor eines Benutzers Unix in Windows-Zeilenvorschübe ändert oder umgekehrt.
Also - kann ich Merge setzen, um diese "Konflikte" beim Vergleich der beiden Versionen zu ignorieren? Diff hat die Option --ignore-space-change oder -b und ich möchte im Wesentlichen die gleiche Funktion in cvs oder svn haben. Wir verwenden jedes Tool für verschiedene Projekte, daher würde ich mich freuen, wenn ich eine oder beide Antworten hätte.
Zwei abschließende Bemerkungen:
- eindeutig der Mergeprozesses müßten eine willkürliche Wahl treffen, welche Version des Leerzeichen in der fusionierten Datei zu verwenden. Mir geht es gut - wir können es später immer wieder neu formatieren.
- Ich könnte etwas davon vermeiden, indem ich disziplinierter und häufiger eingecheckt - anerkannt und verstanden. Aber ich bin nicht perfekt.
Klingt gut, danke. Dann ist die nächste Frage: Kennt jemand eine Fusion, die Whitespaces ignorieren kann? Bei einer anderen Frage habe ich ein paar visuelle Merge-Tools gefunden, die gut aussehen (meld, tortoisesvn), aber kennt jemand eine Befehlszeile? –
Sie können in Winmerge schauen (http://www.winmerge.org/) Es ist opensource und Sie können es einfach in TortoiseSVN als diff/merge Viewer verwenden –
Ich habe dies auf Linux untersucht, und es scheint, dass es gibt keine einfache Möglichkeit, dies zu tun. Z. B. können Sie ihm sagen, dass er "diff3" verwenden soll, aber er hat keinen Parameter, um Whitespace zu ignorieren. Aber Sie können diesen Parameter übergeben, um ein anderes "diff" -Programm zu verwenden. Also, Sie haben es "diff-b" nennen. Aber dann können Sie das nicht (scheinbar) rekursiv aus dem SVN-Befehl tun (d. H. Svn (unter Verwendung von diff3 (unter Verwendung von (diff -b)))). Die Lösung, die ich als nächstes untersuchen werde, ist das Erstellen eines Shell-Skripts, das "diff3" aufruft, wobei "diff" verwendet wird, um Leerzeichen zu ignorieren. Dann werde ich SVN das Shell-Skript verwenden. – UncaAlby