我一直在使用這種長的命令:如何在svn中添加所有未跟蹤的文件?像git add -i?
svn st | awk '/\?/ {print $2}' | xargs svn add
同樣,使用svn RM文件我不小心刪除正常RM連同:
svn st | awk '/\!/ {print $2}' | xargs svn rm --force
我想我可以寫一個bash函數做這些兩個,但我更喜歡交互式添加/ rm像一個git。
我一直在使用這種長的命令:如何在svn中添加所有未跟蹤的文件?像git add -i?
svn st | awk '/\?/ {print $2}' | xargs svn add
同樣,使用svn RM文件我不小心刪除正常RM連同:
svn st | awk '/\!/ {print $2}' | xargs svn rm --force
我想我可以寫一個bash函數做這些兩個,但我更喜歡交互式添加/ rm像一個git。
我使用您運行的命令行的一般化,稱爲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 "[email protected]" '{}'
%的意見,該腳本可以讓你用相同的運行狀態對所有文件任意命令。
更新:
它不會太難寫一個腳本,需要一個文件路徑作爲參數,並提示用戶添加/刪除,然後做適當的事情該文件。與上面的腳本一起鏈接會得到你想要的。
使用GUI可以顯示所有未跟蹤文件,然後選擇全部並添加。任何像樣的SVN gui都應該提供這個功能。
這就是說,小心你真的想要所有這些文件。
TortoiseSVN可以在提交和顯示更改對話框中顯示未版本控制的文件。您可以右鍵單擊文件以「添加」或將其標記爲已忽略。
如果您使用Visual Studio: AnkhSVN的最新穩定版本有類似的命令,但在大多數情況下它只顯示您應該添加的文件。 (該項目提供的文件列表版本的SCC提供商;其它文件被自動忽略)
如果您在TortoiseSVN提交對話框中,則可以更加懶惰。當您提交時,TortoiseSVN會自動添加您在對話框中選中的任何非版本化文件。 – 2009-01-06 12:44:17
還有一個更簡單的線條......
svn add `svn status | grep ?`
,那麼你可以將它設置爲一個別名〜 /.bashrc如
alias svn-addi='svn add `svn status | grep ?`'
這不起作用 – 2013-07-18 08:31:24
有一個similar question含有nice Ruby script,讓您可以添加,忽略或跳過新文件的選項。我試過了,它對我有用。不需要GUI,只有Ruby。
這增加了所有SVN-未跟蹤和-unversioned文件在當前目錄下,通過所有子目錄遞歸:
svn add --force ./*
對我的作品中的MacOS 10.6+和Ubuntu 10+,與SVN 1.6+。這不提供任何每個文件,用戶交互性;我不知道該怎麼做。
這也會添加svn忽略的文件,好或壞。
請注意,您的一個內襯打破未跟蹤文件的名稱中的空格 – freespace 2011-05-18 07:20:52
使用`svn st | grep'^?' | sed's/^ [?] * /「/'| sed's/$ /」/'| xargs svn add`代替它不會受到空白問題的影響 – freespace 2011-05-18 08:16:47