mac本機svn命令使用

2022-04-05 14:32:58 字數 2800 閱讀 7405

公司專案用到svn,之前做版本管理用的是git。 現在對svn回顧學習了一下。 這裡有一篇很好的入門教程 

對svn的幾個簡單理解和總結

1、 svn 建立乙個**庫

svnadmin creat svnrep

上面**會在使用者目錄下建立乙個名叫 svnrep 的資料夾,這個資料夾就是**庫了。之後可以向這個**庫填加你的工程和檔案。svn建的是多人使用的乙個**庫,和git不同,git pulldown下來之後,本地就有乙個**庫,commit是提交到本地的**庫。push的時候才提交到伺服器。 而svn check out下來,commit則提交到大家共用的**庫。

2、匯入你的檔案 

1  svn import ~/svnrep/svn_test/ file:///

users/wangrui/svnrep/svn_test -m "init import"

匯入乙個新建的工程進入**庫。這時其他人,包括你自己就可以check out**庫的**了。 先前已匯入的本地工程可以刪了。 因為發生變化不會提示有更改(原因時它只是原始工程,不是svn check out下來的,不包含.svn檔案)。  此時,重新checkout 工程,變可以更改工程了。

上面的命令,第乙個時你要匯入工程的路徑,第二個時**庫的路徑。 file:// 表示**庫時本地的;

3、提交

1 svn commit ~/desktop/svn_test -m "

command line test

"

提交更改的檔案即可。 

2014-4-29 新增編輯

svn 分支開發:

svn分支和合併的簡單例子

儘管svn沒有作強制要求,但是一般svn版本庫目錄建議建立trunk、branches和tags三個目錄。 在實際操作時,trunk主幹版本要時刻保持乾淨,即隨時可以基於這個版本進行修改並將應用部署上線。branches是分支目錄,存放並行開發的專案**,因為分支是主幹的廉價拷貝(相當只是提交了一次主幹版本,增加了乙個版本號,並沒有取出版本庫作映象拷貝),所以你可以放心建立很多分支版本。不過subversion不支援跨版本庫的拷貝,當使用svn copy時你只能在同乙個版本庫內操作。tags目錄存放trunk某個的快照,比如說release-1

.0即trunk處於1.0版本時的快照。

使用svn來作團隊的**管理,那麼分支和合併將是非常常用的操作。下面是乙個簡單的示例。

1. 建立分支。這裡假設你要負責乙個叫theme的專案,分支號1.7.2

。#這裡的localhost是svn伺服器位址

svn copy -m "

1.7.2 - theme

" svn://

localhost/www/trunk svn:

//localhost/www/branches/branch1.7.2-theme

svn co svn://

localhost/www/branches/branch1.7.2-theme

2. 從trunk中merge到分支。忙了乙個星期終於開發完了,但是開發期間trunk版本有過改動,部署上線前你需要合併trunk的**。

#branch1.

7.2-theme是分支目錄,注意不可以進到分支子目錄

cd branch1.

7.2-theme

#前面的12972是開分支之前trunk的版本號,後面的12991是merge時trunk的版本號

svn merge -r 12972:12991 svn://

localhost/www/trunk

如果有衝突選擇p(postpone),merge完了之後使用svn st|grep ^c檢視衝突檔案,然後比對修改衝突檔案。解決衝突後再check in

,資訊寫上執行的merge操作。

svn ci -m '

svn merge -r 12972:12991 svn://localhost/www/trunk'3

. 從分支merge到trunk。上線測試完畢,你很幸運,一切都如預期正常,這時就要將分支回歸trunk,將trunk更新到最新。

#先從trunk checkout乙份新鮮的**,然後cd到該版本目錄下

svn co svn:

//localhost/www/trunk

cd trunk

#12973是分支開始的版本號,13006是分支結束的版本號

svn merge -r 12973:13006 svn://

localhost/www/branches/branch1.7.2-theme

如步驟2一樣解決衝突,解決衝突後再check

in,資訊寫上執行的merge操作。

svn ci -m "

svn merge -r 12973:13006 svn://localhost/www/branches/branch1.7.2-theme

"相關的手冊可以參閱svn文件

我自己在這個合併過程中老是出現 

svn: e170000: '

file://localhost/users/wangrui/desktop/svntemprepo/branches/branchone

' isn'

t in the same repository as

'file:///

users/wangrui/desktop/svntemprepo'

這種錯誤,原因是svn merge時,使用的url位址不對。 用 svn info 查出repo的url,再用這個url作為merge時要用的url。

Mac下使用svn命令

ac系統自帶svn命令,能夠很方便的同步更新 使用方法 1.匯入專案 svn import users username desktop project1 svn username password 123 m add a new project.3.新增 svn add test.txt 新增單個...

Mac下使用svn命令

ac系統自帶svn命令,能夠很方便的同步更新 使用方法 1.匯入專案 svn import users username desktop project1 svn username password 123 m add a new project.svn checkout svn username ...

mac 終端 svn 命令

svn checkout path path是伺服器上的目錄 例如 svn checkout svn 簡寫 svn cosvn add file 例如 svn add test.php 新增test.php svn add php 新增當前目錄下所有的php檔案 svn commit m logme...