SORU
26 Aralık 2009, CUMARTESİ


'in ne denk gıt için?kullanın-taahhüt-kat

Benim sunucuda benim yerel ve dosyaların zaman damgaları eşit olması gerekiyor. Bu son her dosya değiştirilmiş, işlendiği zaman, böylece kullanmak-taahhüt-kat=config doğru ayarlayarak Subversion ile gerçekleştirilir.

Her zaman benim depoyu ben klon, dosyaların zaman damgaları son uzak depodaki değiştirildi, repo klonladım zaman değil yansıtmasını istiyorum.

Gıt ile bunu yapmak için herhangi bir yolu var mı?

CEVAP
10 Ocak 2010, Pazar


Ancak, eğergerçekteno zaman kontrol standartlarıyla kez bu komut dosyasını kullanarak deneyin ve (çalıştırılabilir) taahhüt dosyası $GİT_DİR/kullanmak istiyorum.git/hooks/-ödeme sonrası:

#!/bin/sh -e

OS=${OS:-`uname`}
old_rev="$1"
new_rev="$2"

get_file_rev() {
    git rev-list -n 1 "$new_rev" "$1"
}

if   [ "$OS" = 'Linux' ]
then
    update_file_timestamp() {
        file_time=`git show --pretty=format:%ai --abbrev-commit "$(get_file_rev "$1")" | head -n 1`
        touch -d "$file_time" "$1"
    }
elif [ "$OS" = 'FreeBSD' ]
then
    update_file_timestamp() {
        file_time=`date -r "$(git show --pretty=format:%at --abbrev-commit "$(get_file_rev "$1")" | head -n 1)" ' %Y%m%d%H%M.%S'`
        touch -h -t "$file_time" "$1"
    }
else
    echo "timestamp changing not implemented" >&2
    exit 1
fi

IFS=`printf '\t\n\t'`

for file in `git ls-files`
do
    update_file_timestamp "$file"
done

Bu komut büyük depoları kontrol için oldukça büyük bir gecikme büyük dosya, büyük dosya boyutları büyük miktarda anlamına gelir) neden olacağını unutmayın.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
Git

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • chrmoe

    chrmoe

    7 Kasım 2006
  • Gee Cee

    Gee Cee

    1 AĞUSTOS 2009
  • Chaîne de TheMoustic

    Chaîne de T

    5 Kasım 2006