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

  • case LianLi

    case LianLi

    28 Mayıs 2010
  • The Brister

    The Brister

    10 ŞUBAT 2008
  • waterfairy17

    waterfairy17

    9 Aralık 2007