Чтобы сравнить содержимое двух папок по некоторому приложению в OS X

1013
Léo Léopold Hertz 준영

Я улучшаю документ LaTeX моего друга в папке 1/2, в то время как он редактирует папку 1/1.

Исходное содержимое папок одинаковое.

Как вы можете объединить две папки в одну так, чтобы все файлы были объединены?

3

3 ответа на вопрос

9
Chealion

Вы хотите найти различия в файлах в двух папках и объединить изменения?

Если вы ищете утилиту с графическим интерфейсом, вы можете использовать FileMerge, который можно найти по адресу, /Developer/Applications/Utilities/если у вас установлены инструменты разработчика Apple. В нем есть некоторые странные ошибки - в основном, связанные с обработкой кодировки файлов.

Если вы ищете что-то более быстрое и приятное, загляните в Changes.app - он не дешевый, но стоил мне входной билет в несколько раз.

Если вы хотите сделать это через командную строку, вы можете использовать, diffчтобы найти различия, а затем вручную объединить файлы, так как в нем будут перечислены все различия. (например. diff ~/Desktop/a ~/Desktop/b)

2
Axxmasterr

Поскольку на Mac установлена ​​версия unix, вы можете использовать все проверенные, проверенные и проверенные команды из установленного наследия UNIX.

Руководство по сравнению каталогов в UNIX Shell

1
Léo Léopold Hertz 준영

Следующий код сделан Git-сообществом

#!/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 

Вы можете запустить

opendiff folder1 folder2 

добиться того, чего я хочу.