Para comparar o conteúdo de duas pastas por algum aplicativo no OS X

3

Eu estou melhorando o documento LaTeX do meu amigo na pasta 1/2, enquanto ele está editando a pasta 1/1.

O conteúdo inicial das pastas é o mesmo.

Como você pode combinar as duas pastas em uma de modo que todos os arquivos sejam mesclados?

    
por Léo Léopold Hertz 준영 30.07.2009 / 17:06

3 respostas

9

Você está querendo encontrar as diferenças nos arquivos em duas pastas e mesclar as alterações?

Se você estiver procurando por um utilitário de GUI, você pode usar o FileMerge, que pode ser encontrado em /Developer/Applications/Utilities/ se você tiver as Ferramentas de Desenvolvedor da Apple instaladas. Tem alguns bugs estranhos - principalmente para lidar com a codificação de arquivos.

Se você está procurando algo mais rápido e melhor, confira Changes.app - não é barato, mas valeu a pena o preço de admissão várias vezes para mim.

Se você quiser fazê-lo através da linha de comando, você pode usar diff para encontrar as diferenças e, em seguida, mesclar manualmente os arquivos juntos, uma vez que listará todas as diferenças. (ex. diff ~/Desktop/a ~/Desktop/b )

    
por 30.07.2009 / 17:15
2

Como o mac está executando uma versão do unix, você pode usar todos os comandos testados, testados e verdadeiros da herança UNIX estabelecida.

Comparação entre o shell UNIX e o tutorial de diretórios

    
por 30.07.2009 / 17:14
1

O seguinte código é feito por Git-community

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

Você pode então executar

opendiff folder1 folder2

para conseguir o que eu quero.

    
por 30.07.2009 / 18:24