So vergleichen Sie den Inhalt zweier Ordner mit einer App in OS X

1372
Léo Léopold Hertz 준영

Ich verbessere das LaTeX-Dokument meines Freundes in Ordner 1/2, während er den Ordner 1/1 bearbeitet.

Der anfängliche Inhalt der Ordner ist derselbe.

Wie können Sie die beiden Ordner so miteinander verschmelzen, dass alle Dateien verschmelzen?

3

3 Antworten auf die Frage

9
Chealion

Sie möchten die Unterschiede in Dateien in zwei Ordnern finden und die Änderungen zusammenführen?

Wenn Sie nach einem GUI-Dienstprogramm suchen, können Sie FileMerge verwenden, das Sie finden können, /Developer/Applications/Utilities/wenn Sie die Developer Tools von Apple installiert haben. Es hat einige seltsame Fehler - meistens beim Umgang mit der Dateicodierung.

Wenn Sie auf der Suche nach etwas schnellerem und netterem sind, besuchen Sie Changes.app - es ist nicht billig, aber es hat sich für mich mehrmals den Eintrittspreis gelohnt.

Wenn Sie dies über die Befehlszeile tun möchten, können diffSie die Unterschiede ermitteln und dann die Dateien manuell zusammenführen, da alle Unterschiede aufgelistet werden. (zB diff ~/Desktop/a ~/Desktop/b)

2
Axxmasterr

Da auf dem Mac eine Version von Unix ausgeführt wird, können Sie alle bewährten und getesteten Befehle des etablierten UNIX-Erbes verwenden.

Tutorial zum Vergleich von UNIX-Shell-Verzeichnissen

1
Léo Léopold Hertz 준영

Der folgende Code wird von Git-Community erstellt

#!/bin/sh # # Filemerge.app must not already be open before running # this script, or opendiff below will return immediately, # and the TMPDIRs deleted before it gets the chance to read # them.  [ \$# -eq 7 ] && opendiff "\$2" "\$5" EOF chmod +x merge.sh GIT_EXTERNAL_DIFF=./merge.sh git-diff    if test $# = 0; then OLD=`git-write-tree` elif test "$1" = --cached; then OLD=HEAD NEW=`git-write-tree` shift fi if test $# -gt 0; then OLD="$1"; shift fi test $# -gt 0 && test -z "$CACHED" && NEW="$1"  TMPDIR1=`mktemp -d` git-archive --format=tar $OLD | (cd $TMPDIR1; tar xf -) if test -z "$NEW"; then TMPDIR2=$(git rev-parse --show-cdup) test -z "$cdup" && TMPDIR2=. else TMPDIR2=`mktemp -d` git-archive --format=tar $NEW | (cd $TMPDIR2; tar xf -) fi  opendiff $TMPDIR1 $TMPDIR2 | cat rm -rf $TMPDIR1 test ! -z "$NEW" && rm -rf $TMPDIR2 

Sie können dann laufen

opendiff folder1 folder2 

zu erreichen, was ich will.