HG 輸出兩個 revision 之間變更的檔案

情境

你不是 send patch 給客戶,你是 send 檔案給客戶,讓客戶工程師只要 覆蓋 就好。

解法

cd 到你的 hg 目錄,然後:

$ ./export_hg_revisions_diff.sh <rev1> <rev2>

結果(比如輸出 r10~r20):

target_dir.20110818.r10-r20.tbz

因為我用 zsh, 所以以下只有 zsh 版本,EXPORT_DIR 請自行更換。

Source

export_hg_revisions_diff.sh:

#!/usr/bin/env zsh

REV_START=$1
REV_END=$2

if [[ -z "$REV_START" || -z "$REV_END" ]] ; then
    echo 'Usage: ' $0 '<rev1> <rev2>'
    exit
fi

EXPORT_DIR='target_dir'
EXPORT_PATH="../$EXPORT_DIR"
HG_REVISION=`hg id -n`
TODAY_STR=`date +%Y%m%d`

hg log -r $REV_START:$REV_END --template "{files} " | awk '{$1=$1}1' OFS=" -I " | xargs hg ar $EXPORT_PATH -I

cd $EXPORT_PATH

rm -rf .hg*

cd ..

tar jcvpf "$EXPORT_DIR.$TODAY_STR.r$REV_START-r$REV_END.tbz" $EXPORT_DIR

echo "export revision r$REV_START-r$REV_END  done!"

內容目錄

上一個主題

hg serve with nginx proxy

下一個主題

svn 外連另一個 svn 目錄

本頁