本文示範SVN的一般操作流程,做到更新狀態時不疏漏。
首先查看svn help,幾個重要的svn命令如"checkout、commit、status"都會顯示出來。
另想查看單一命令的協助資訊,可執行"svn help <subcommand>"。
1.svn helpsodino@sodino-desktop:~/SVNTest$ svn helpusage: svn <subcommand> [options] [args]Subversion command-line client, version 1.6.6.Type 'svn help <subcommand>' for help on a specific subcommand.[... ... 表示省略 ... ...]Available subcommands: add checkout (co) cleanup commit (ci) delete (del, remove, rm) info list (ls) log status (stat, st) update (up)[... ... 表示省略 ... ...]
執行checkout,需要SVN同步地址,操作如下:
2.svn checkoutsodino@sodino-desktop:~/Template/SVNTest$ svn checkout http://svn.sodino.cn:8228/svn/sodinolab/trunk/client/AndBookmarkA AndBookmark/default.propertiesA AndBookmark/.classpathA AndBookmark/proguard.cfgA AndBookmark/assetsA AndBookmark/.projectA AndBookmark/AndroidManifest.xmlA AndBookmark/srcA AndBookmark/src/andA AndBookmark/src/and/bookmarkA AndBookmark/src/and/bookmark/ActAndBookmark.javaA AndBookmark/resA AndBookmark/res/valuesA AndBookmark/res/values/strings.xmlA AndBookmark/res/drawableA AndBookmark/res/drawable/icon.pngA AndBookmark/res/layoutChecked out revision 1551.
checkout之後可以查看當前同步工程的狀態資訊,使用svn info。具體如下:
3.svn infosodino@sodino-desktop:~/Template/SVNTest$ svn info AndBookmark/Path: AndBookmarkURL: http://svn.sodino.cn:8228/svn/sodinolab/trunk/client/AndBookmarkRepository Root: http://svn.sodino.cn:8228/svn/sodinolabRepository UUID: acf65315-cec2-45ce-afeb-57a46c1df7d6Revision: 1551Node Kind: directorySchedule: normalLast Changed Author: sodinoLast Changed Rev: 1551Last Changed Date: 2012-06-11 18:09:03 +0800 (一, 11 6月 2012)
當工程在編輯/維護過程中,會修改、新增、刪除一個檔案,查看這些改動過的檔案可以使用"svn status path"命令。每次在執行"commit"之前都必須使用此命令查看工程當前詳細狀態,以確保工程同步時資源檔齊全。
4.svn status AndBookmark/sodino@sodino-desktop:~/Template/SVNTest$ svn status AndBookmark/? AndBookmark/project.properties? AndBookmark/readme.txtM AndBookmark/default.propertiesM AndBookmark/.classpath? AndBookmark/src/and/bookmark/Bookmark.javaM AndBookmark/src/and/bookmark/ActAndBookmark.java
將狀態"。"的檔案添加到版本庫中
5.svn add AndBookmark/.../.../*.*
對新增檔案執行"svn add path"命令後,顯示狀態如下
?:不在svn的控制中;M:內容被修改;C:發生衝突;A:預定加入到版本庫;K:被鎖定
列出所有改動過的未同步檔案
sodino@sodino-desktop:~/Template/SVNTest$ svn status AndBookmark/M AndBookmark/default.propertiesM AndBookmark/.classpathA AndBookmark/project.propertiesM AndBookmark/src/and/bookmark/ActAndBookmark.javaA AndBookmark/src/and/bookmark/Bookmark.javaA AndBookmark/readme.txt
提交發布使用'svn commit path -m "Message of this action"',參數"-m"是必須的。
6.svn commit AndBookmark/ -m "增加了Bookmark.java及readme.txt"
其餘常用的svn命令如下:
參考文章:http://blog.csdn.net/nancy198696/article/details/4059726
7.svn list path
顯示path目錄下的所有屬於版本庫的檔案和目錄
svn log path
顯示當前路徑的SVN日誌
r1553 | sodino | 2012-06-14 12:25:18 +0800 (四, 14 6月 2012) | 1 line增加註釋------------------------------------------------------------------------r1552 | sodino | 2012-06-14 12:04:11 +0800 (四, 14 6月 2012) | 1 line增加了Bookmark.java及readme.txt
svn diff -r m:n path
對版本m和版本n進行比較差異
svn merge -r m:n path
將版本m和版本n之前的差異合并起來