当前位置:  开发笔记 > 编程语言 > 正文

如何在svn中添加所有未跟踪的文件?像git add -i之类的东西?

如何解决《如何在svn中添加所有未跟踪的文件?像gitadd-i之类的东西?》经验,为你挑选了3个好方法。

我一直在使用这个长命令:

svn st | awk '/\?/ {print $2}' | xargs svn add

同样,对于svn rm文件我意外删除了正常的rm:

svn st | awk '/\!/ {print $2}' | xargs svn rm --force

我想我可以写一个bash函数来做这两个,但我更喜欢像git那样的交互式add/rm.



1> 小智..:

有一个更容易的线...

svn add `svn status | grep ?`

然后你可以把它设置为〜/ .bashrc中的别名,例如

alias svn-addi='svn add `svn status | grep ?`'


我最终这样做了:在`svn状态|中 grep?| nawk'{print $ 2}'`; svn添加$ a; DONE

2> Brandon DuRe..:

我使用了您运行的命令行的泛化,称为svnapply.sh.我没有写它,但我不记得我在哪里找到它.希望原作者原谅我在此重新发布:

#!/bin/bash
#
# Applies arbitrary commands to any svn status. e.g.
#
# Delete all non-svn files (escape the ? from the shell):
# svnapply \? rm
#
# List all conflicted files:
# svnapply C ls -l

APPLY=$1
shift

svn st | egrep "^\\${APPLY}[ ]+" | \
sed -e "s|^\\${APPLY}[ ]*||" | \
sed -e "s|\\\\|/|g" | \
xargs -i "$@" '{}'

根据注释,该脚本允许您对具有相同状态的所有文件运行任意命令.

更新:

编写一个以文件路径作为参数的脚本并提示用户添加/删除然后为该文件执行适当的操作并不困难.将上述脚本链接起来可以得到你想要的东西.



3> Johnny Utahh..:

这会在当前目录中添加所有svn-untracked和-unversioned文件,并在所有子目录中递归:

svn add --force ./*

适用于MacOS 10.6+和Ubuntu 10+,svn 1.6+.这不提供任何每个文件,用户交互性; 我不知道该怎么做.

这也将添加svn-ignored文件,无论好坏.

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有