2010-11-05 74 views

回答

0

你有沒有嘗試提交config.js,看看它是否真的被忽略?我想如果你明確地告訴svn添加一個文件到版本控制,它會超過忽略。

+0

嘗試提交不是順便找出順便說一句,如果它被添加它將被提交。 svn:忽略是爲了防止它被添加。 – 2010-11-05 14:52:55

10

在UNIX和Linux,如果你說

svn add * 

然後外殼將擴大在該目錄中的所有文件和程序將看到一樣的,如果你鍵入

svn add file-a.txt file-b.txt file-c.txt 

等等。這意味着Subversion命令認爲你已經明確列出了要添加的文件。在這種情況下,即使可能設置svn:ignore屬性,它也會添加它。

documentation of svn:ignore(我的重點):

Subversion使用忽略模式來確定哪些文件不應該進入版本控制系統作爲較大的遞歸此外或導入操作的一部分。

+1

如何讓svn添加最近創建的所有文件並同時保持忽略? – lyuba 2010-11-05 15:16:41

+3

'svn add。 --depth infinity' – 2010-11-05 22:13:01

+1

如果我添加了一些文件,這些文件不在位於,而是位於例如scss/pages/_comparison.scss中,那麼您建議的命令不會添加它們。相反,它說svn:警告:'。'已經在版本控制下 – lyuba 2010-11-08 10:36:51

1

我發現this question包含一個非常好的解決方案。由於答案實際上並沒有回答這個問題,我不認爲它是重複的。 簡單使用的Unix工具的功率(可與Cygwin的窗戶上):

svn status | grep '?' | sed 's/^.* /svn add /' | bash

8

超級老問題,但我遇到了這個問題剛纔我找到了解決方法這裏就不列出。阿德里安史密斯的回答是正確的。我認爲文檔和SVN本身在5年內看到了許多更新。以下是我在SVN docs

發現即使svn:ignore設置,如果在命令中使用shell通配符,你可能會遇到問題。在Subversion操作它們之前,Shell通配符被擴展爲明確的目標列表,因此運行svn SUBCOMMAND *就像運行svn SUBCOMMAND file1 file2 file3 …一樣。在svn add命令的情況下,這具有類似於傳遞--no-ignore選項的效果。因此,不要使用通配符,而應使用svn add --force .對非版本事物進行批量調度以進行添加。明確的目標將確保當前目錄由於已處於版本控制之下而不被忽略,並且--force選項將使Subversion抓取該目錄,添加未版本化的文件,同時仍遵循svn:ignore屬性和global-ignores運行時配置變量。如果您不希望完全遞歸爬網以添加內容,請務必在svn add命令中提供--depth files選項。

簡短版本使用svn add --force .這對我來說非常合適。

0

使用此命令,而不是svn add --force *

svn add --force ./ 

在這種情況下SVN本身解析目錄下的所有文件,並且認爲被忽略的文件,但是當你使用*,你明確地告訴SVN添加的所有文件。