Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何使用shell命令检查SVN签出文件并在目录中创建链接_Bash_Svn - Fatal编程技术网

Bash 如何使用shell命令检查SVN签出文件并在目录中创建链接

Bash 如何使用shell命令检查SVN签出文件并在目录中创建链接,bash,svn,Bash,Svn,基本上,我的问题是如何使用bashshell命令自动执行以下操作,以便轻松跟踪修改后的文件 列出svn签出文件 在名为“更改”的目录中创建指向上述文件的链接文件 我正在考虑使用shell命令,如下所示: $ svn status -q | sed 's/M //' | xargs -I xxx ln -s ***BETWEEN REAL FILE AND BASE FILENAME*** 您有两件事需要关注: svn状态为“M”的每个文件之间的空行 提取文件名 awk one

基本上,我的问题是如何使用bashshell命令自动执行以下操作,以便轻松跟踪修改后的文件

  • 列出svn签出文件
  • 在名为“更改”的目录中创建指向上述文件的链接文件

  • 我正在考虑使用shell命令,如下所示:

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

    您有两件事需要关注:

    • svn状态为“M”的每个文件之间的空行
    • 提取文件名
    awk one liner可以做到这一点:

    awk '$0{x=$2;gsub(".*/","",x);print "ln -s ../"$2" "x}'
    
    因此,如果您通过管道将
    svn状态
    输出传输到上面的行,它将为您打印
    ln-s
    命令行

    如果希望执行ln-s行,可以将输出通过管道传输到sh(
    svn status | awk…| sh
    ),或者将
    print
    替换为
    system

    最后,我想以下面的输出为例:

    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
    

    令人惊叹的!它对我有用。现在我可以将所有修改过的文件放在一个目录中。谢谢你,肯特@YanX你可以投票表决我的答案并接受它来感谢我^_*我以前试过。然而,我还没有足够的声誉(至少15)。我以后一定会这么做的。再次感谢你的帮助。
    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