[教學] Subversion (svn) 如何將部份檔案標記為不提交(commit).

Subversion此範例以 bash (Shell) 為例:

定義一個名為 svn 的 bash function, 輸入指令:

$ svn() { if [[ $1 = “ci” ]]; then command svn ci `svn st | sed -e “/^— Changelist ‘ignore-on-commit’/,/^— Changelist/d” | grep ‘^[ADMR]’ | awk ‘{print $NF}’`; elif [[ $1 = “skip” ]]; then command svn cl ‘ignore-on-commit’ “${@:2}”; elif [[ $1 = “unskip” ]]; then command svn cl –remove “${@:2}”; else command svn “$@”; fi; }

當使用 svn ci 指令時, 會自動將 ‘ignore-on-commit’ 此 changelist 中的檔案剃除.
此名稱是 SVN Tortoise 預設使用的名稱. 所以建議使用此 changelist 名單.

增加 [欲忽略的檔案] 到 ‘ignore-on-commit’ 名單中:
$ svn skip FILENAME
或自行採用原生指令:
$ svn cl ‘ignore-on-commit’ FILENAME
A [ignore-on-commit] FILENAME

FILENAME 為欲忽略的檔案名稱.

反之, 欲取消忽略此檔案:
$ svn unskip FILENAME
或自行採用原生指令:
$ svn cl –remove FILENAME
D [ignore-on-commit] FILENAME

備註:
目前已知問題為, 當除了 ‘ignore-on-commit’ 中的檔案以外, 沒有其他變動的檔案, 會視為想要 commit ‘ignore-on-commit’ 此名單中的所有檔案.