有没有像Git这样的交互式提交菜单,如Git与--interactive?

时间:2012-01-05 07:32:39

标签: linux git svn shell version-control

你很可能在git中知道使用

可以获得非常好的提交体验
git commmit --interactive

将显示一个菜单,您可以在其中添加/更新/修补/恢复内容,并根据其范围选择文件,例如:1-5,10-12,100-1135

$ git commit --interactive
           staged     unstaged path


*** Commands ***
  1: [s]tatus     2: [u]pdate     3: [r]evert     4: [a]dd untracked
  5: [p]atch      6: [d]iff       7: [q]uit       8: [h]elp
What now>

我希望在SVN中获得与 shell命令相同的功能 你知道什么是SVN命令吗?

4 个答案:

答案 0 :(得分:8)

坏消息是没有svn的交互式命令行提示。好消息是你可以自己编写并成为第一个提出这样一个有用工具的人。

答案 1 :(得分:0)

我认为您在SVN的CLI(命令行界面,即“带有shell命令”)中没有这种功能。

当然,你有一些像TortoiseSVN(Windows)或RabbitVCS (Linux)这样的GUI,但这是图形解决方案,而不是命令行解决方案(再次,一个shell命令)。

图形化地,增强提交看起来像:

graphical commit

答案 2 :(得分:0)

在altem的答案精神中,我刚刚做了:

# collect a list modified files
svn st > temp.sh
# use your favourite editor (although it is vim, right?) 
# to edit list into suitable svn command or commands
vim temp.sh
# execute
. ~/temp.sh

并发出命令提交文件选择

丑陋的小工具

但比执行多个svn ci提交和svn st

更容易

答案 3 :(得分:0)

意见:我发现svn非常糟糕地设计了命令行和脚本...

但是当我想提示用户时,我经常使用find及其-ok表达式:

find . -name "*.jar" -exec svn info {} \; -a -ok svn delete {} \;

请注意,如果您不想输出svn info,则必须按如下方式调用子shell(否则-ok根本不会输出):

find . -name "*.jar" -exec sh -c 'svn info "{}" 2>/dev/null' \; -a -ok svn delete {} \;