如何使用svn忽略文件和文件夾 若是你以前嘗試過git,你就知道svn的忽略在命令行上有多麼繁瑣。 我從事android開發,我但願svn能夠這樣忽略:php
# Built application files
*.apk
*.ap_
# Files for the ART/Dalvik VM
*.dex
# Java class files
*.class
# Generated files
bin/
gen/
out/
# Gradle files
.gradle/
build/
# Local configuration file (sdk path, etc)
local.properties
# Proguard folder generated by Eclipse
proguard/
# Log Files
*.log
# Android Studio Navigation editor temp files
.navigation/
# Android Studio captures folder
captures/
# Intellij
*.iml
.idea/workspace.xml
.idea/libraries
# Keystore files
*.jks
複製代碼
我本覺得svn的忽略會很簡單,但實際上達到最終的忽略效果花掉了我至關長的時間。因此在這作個記錄,將個人經驗分享一下。android
svn經過屬性來判斷如何處理倉庫中的文件。其中有一個屬性即是svn:ignore。你可使用 svn propset 來設置svn:ignore在單獨的目錄。你能夠給svn:ignore設置一個值,文件名或者是表達式。 例如:git
svn propset svn:ignore *.class .
複製代碼
這時你使用svn status命令,就看不到。class文件了。若是你也想查看忽略的文件,你能夠輸入:bash
svn status --no-ignore
複製代碼
忽略文件夾,千萬不要加斜槓。app
svn propset svn:ignore bin . # yes
svn propset svn:ignore /bin . # nope
svn propset svn:ignore bin/ . # nope
複製代碼
使用上面的方法只能忽略當前目錄,若是你想要本身的子文件夾也進行忽略 要使用-R驚醒操做。eclipse
svn propset svn:ignore -R *.class .
複製代碼
經過如下的命令你能夠忽略 *.class,*.apk, and Thumbs.dbide
svn propset svn:ignore -R *.class .
svn propset svn:ignore -R *.apk .
svn propset svn:ignore -R Thumbs.db .
複製代碼
或者,你能夠這樣:svn
svn propset svn:ignore -R "*.class > *.apk > Thumbs.db" .
複製代碼
如android的,eclipse工程中須要忽略一些文件。 因而新建一個文本文檔.svnignore並在其中寫入:gradle
build
bin
gen
proguard
.classpath
.project
local.properties
Thumbs.db
*.apk
*.ap_
*.class
*.dex
複製代碼
而後執行:ui
svn propset svn:ignore -R -F .svnignore .
複製代碼
全局忽略完成。
進行上述步驟以後,每一個文件夾內的bin,gen等目錄都會被忽略。因此起名字的時候不要起和忽略的名字相同的文件。
查看所有
svn status --no-ignore
複製代碼
查看指定目錄
svn proplist -v [PATH]
複製代碼
刪除忽略
svn status --no-ignore
複製代碼
svn還有坑。。。 當你使用add的時候,千萬不要使用
svn add *
複製代碼
這樣會把忽略中的文件也添加到倉庫。應該使用下面的命令行代替
svn add --force .
複製代碼
注意是點,千萬別寫成*
若是在忽略以前,文件應經被add,應先刪除
svn delete [path]
複製代碼
只從svn中忽略,而不刪除文件
svn delete --keep-local [path]
複製代碼
有時候你發現svn add後,這個提交的數據又不須要了。這時候須要有svn revert來處理了。
好比
A testcase/perday.php
如何取消呢?
svn revert testcase/perday.php
會出現下面的提示:
已恢復「testcase/perday.php」
說明腳本已經恢復了到原來的狀態,不受SVN 版本控制了。
如何恢復整個目錄??有時候你將整個目錄都svn add了,整個目錄有不一樣深度的文件夾,這時候你須要用其餘方式來解決
svn revert --depth=infinity .
複製代碼
參考資料: http://stackoverflow.com/questions/116074/how-do-i-ignore-a-directory-with-svn http://superchlorine.com/2013/08/getting-svn-to-ignore-files-and-directories/ https://www.coder4.com/archives/4244