Bu gerekler düşünüyorum biraz (iki adımlı) programlama.
Aşağıdaki kabuk komut dosyası benim için oldukça iyi çalışıyor. Hem revizyonları hem de eşleşen satırları yazdırır.
#!/bin/bash
#
# script to grep for a pattern in all revisions of a file
# Usage: scriptname 'pattern' filepath
#
function fatal() {
echo "[email protected]" 1>&2
exit 1
}
function usage() {
echo "[email protected]" 1>&2
fatal Usage: $0 pattern file
}
case "$1" in
'') usage 'missing pattern to search for' ;;
*) Pat="$1" ;;
esac
if [ "$2" != '' ]; then
File="$2"
else
usage 'must pass file as 2nd argument'
fi
# -- generate list of revisions (change-sets) involving $File
for rev in `hg log --template '{rev}\n' $File`; do
# -- grep the wanted pattern in that particular revision
hg grep "$Pat" -r $rev $File
done
Notlar:
- sadece revizyonları listesini isterseniz, eşleştirme metnini şerit ve sadece revizyon öneki ve muhtemelen boru 'tür -u' yoluyla ayrılmak için bir adım ekleyebilir Ben de yeniden adlandırılmış/kaldırılan dosyaları desteklemek için, dosyanın varlığının kontrol etmiyoruz
- (desende örneğin tırnak) tamamen kusursuz değildir
'u kullanmıyorum Belki de TortoiseHg'nin (3.2.3) daha sonraki bir sürümündeyim, fakat bunun tek bir satırın değişikliklerini nasıl izole ettiğini göremiyorum. (Artık manifest seçeneğini bulamıyorum, ancak explorer/plugin bağlam menüsünden dosyalara açıklama ekleyerek, bu cevabın önerdiği gibi görünüyor, bu da bir dosyanın çeşitli revizyonlarda nasıl göründüğünü gösteriyor; her bir revizyonda soru.) – downwitch
kayıp bildirisi için - http://stackoverflow.com/questions/23457746/manifest-button-missing-in-tortoise-hg – Tom