3

基本的に私の質問は、変更されたファイルを簡単に追跡できるように、bash シェル コマンドを使用して自動的にフォローする方法です。

  1. svn チェックアウト ファイルを一覧表示する
  2. 「change」というディレクトリに上記のファイルへのリンクファイルを作成します

laptop$ svn status -q

M            rcms/src/config/ta_show.c
M            rcms/src/config/ta_config.c

laptop$ cd  change
laptop$ link -s ../rcms/src/config/ta_show.c ta_show.c
laptop$ link -s ../rcms/src/config/ta_config.c ta_config.c

laptop$ ls
lrwxrwxrwx 1 root root 59 Nov 27 12:24 ta_show.c -> ../rcms/src/config/ta_show.c
lrwxrwxrwx 1 root root 59 Nov 27 12:24 ta_config.c -> ../rcms/src/config/ta_config.c

以下のようなシェルコマンドを使用することを考えています:

$ svn status -q | sed 's/M       //' | xargs -I xxx ln -s ***BETWEEN REAL FILE AND BASE FILENAME***
4

1 に答える 1

3

次の 2 つの点に注意する必要があります。

  • svnステータスが「M」の各ファイル間の空行
  • ファイル名を抽出します

awk ワンライナーでそれを行うことができます:

awk '$0{x=$2;gsub(".*/","",x);print "ln -s ../"$2" "x}'

したがって、svn status出力を上記の行にパイプすると、ln -sコマンド ラインが出力されます。

ln -s 行を実行したい場合は、出力を sh ( svn status|awk ...|sh)にパイプするかprintsystem

最後に、例として以下の出力を示したいと思います。

kent$ echo "M            rcms/src/config/ta_show.c

M            rcms/src/config/ta_config.c"|awk '$0{x=$2;gsub(".*/","",x);print "ln -s .."$2" "x}'
ln -s ../rcms/src/config/ta_show.c ta_show.c
ln -s ../rcms/src/config/ta_config.c ta_config.c
于 2012-11-29T22:07:08.340 に答える