早晨上班先更新最新**版本,晚上下班提交今天的**到svn伺服器,每次提交之前先更新因為如果版本過時(此檔案被其他人操作並提交導致svn伺服器上的檔案版本號公升級,而本地的檔案的版本號是過時的)的話必須更新後才能提交,並且svn會自動把更新下來的檔案與本地過時的檔案進行合併操作,如果合併操作失敗(使用者a和使用者b修改了同乙個檔案同一行**)則為衝突,衝突會在目錄多出來三個檔案,.mine結尾的是我修改後最終想要提交的檔案,.rn(n表示版本號,這裡指較小的那乙個檔案)結尾的檔案是相對於衝突沒發生之前的最新版本檔案,.rn(n表示版本號,這裡指較大的那乙個檔案)是與我修改後最終想要提交的檔案相衝突的版本檔案(這個檔案是當前svn伺服器上最新的版本),並且原檔案中也會標識出衝突的部分,<<.mine標識我這邊所做的修改,>>.rn表示對方所做的修改,中間以==分割。
2023年12月27日18:34:39更新:上面的處理方式有誤,現在的我覺得正確的行為應該是這樣:
早晨上班先更新最新**版本,晚上下班提交今天的**到svn伺服器。
我把每次提交之前先更新那句話去掉了,因為如果每次提交之前先更新的話,如果其他人和我修改了同乙個檔案,而他提交了我還沒提交,我準備更新後再提交,這時就有可能出現衝突,會直接生成一堆衝突檔案,解決起來相對麻煩,而我直接提交的話即使存在衝突它也不會直接給我生成一堆衝突檔案,系統會告訴我哪個檔案的哪個地方有衝突過時之類的,我就可以很方便的提前去解決掉即將發生的衝突問題。
專案開發中有時需要操作別人的檔案,為了避免**衝突或覆蓋,盡量只往檔案中增加新的**而不動原來的**結構。
svn伺服器搭建好伺服器基本上沒什麼事,剩下的操作svn客戶端工具就行了。
當使用者a發現登陸錯賬號了,可以在客戶端工具的設定中進行清除身份驗證資料即可重置賬號。
要妥善保管伺服器搭建的倉庫目錄,千萬不可直接修改此目錄資料夾,一旦此目錄修改所有連線的使用者都將被動。
衝突的解決方式:
當你提交時發現提交的檔案是過時的無法提交,這時不要去更新,因為更新會導致衝突,會產生三個衝突檔案,解決起來相對麻煩,這時候的解決方案就是不要去更新,而是備份此檔案放到別處,然後還原此檔案到上乙個版本,再去更新,這樣更新下來的就是被其他人修改過的提交到伺服器上最新的**檔案,而不會產生衝突,剩下的就是把備份的檔案和更新下來的這個被修改的檔案進行比對,檢查我將要提交的這個檔案和其他人提交的檔案**不一樣,然後進行修復,修復完畢刪除備份檔案提交修復的檔案。
技巧:如果其他人改了我的**而提交了,而我沒有注意把**更新過來了,這時有可能會存在隱患,因為其他人改的**可能只是他用到的地方是正確的,而我這邊的不一定符合的,到後期可能會導致bug出現,然後除錯bug發現某處**被人修改了導致此處bug,這個時候可能已經無法確定是誰修改了這個地方的**,我們只能通過客戶端工具檢視此檔案的版本歷史記錄,然後從最新的一版和下面一版進行對比一直到檢查到是在哪一版被人修改了,這個人是誰。
2023年2月28日13:36:35更新:其實沒必要去糾結是先更新還是先提交的問題,如果另乙個使用者提交了新的版本,那麼你必須去更新,否則你將會在提交時收到版本過時的警告,提示你去進行版本更新,這種情況你要小心了,因為很有可能更新的資料和本地衝突(比如:你的本地檔案和伺服器上的檔案內容有地方不統一,如果不同的內容沒有重疊在一行那麼svn會自動進行合併操作,如果不同的內容重疊在了一起,那麼這就衝突了,所以我們不用擔心更新會被覆蓋的問題)。
也沒必要糾結我提交的**會不會被其他人給覆蓋的問題,因為一般情況下當你的**提交後,其他人得到你的**後只是往裡面增加內容,這樣因為多個人在操作同乙個檔案,所以有較大的機率出現衝突,但不會出現覆蓋的情況,除非別人故意把你的**刪了給改成他的**。
匯出svn檔案:tortoisesvn ->export->選擇乙個目標資料夾,點選確定預設情況下只匯出當前svn目錄下存在版本資料的檔案(被svn控制的那些檔案),選擇目標資料夾時有乙個選項「export unversioned files too」可以同時匯出沒有版本資料的檔案。這很方便就拷貝了乙份svn專案,並且沒有.svn資料夾,僅僅匯出版本控制的那些檔案資料,不包含svn元資料。
svn 使用總結
最近做專案使用 svn,不怎麼上手,蒐集了下資料,學習一下。使用svn常見的問題和解決方法如下 1 更新時提示檔案發生衝突 one or more files are not a conflicted state。多人同時修改同一檔案的同一部分,svn無法自動進行合併,會導致該錯誤 解決方法 對工作...
svn使用總結
1 svn使用教程參考 2 svn分支管理 trunk 表示開發時版本存放的目錄,即在開發階段的 都提交到該目錄上。branches 表示發布的版本存放的目錄,即專案上線時發布的穩定版本存放在該目錄中。tags 表示標籤存放的目錄。唯讀 svn中trunk,branches,tags用法詳解 bra...
SVN使用總結
一般情況subversion已經包含在很多linux發行版中了,可以使用命令檢查 svn version 和 svnadmin version,如果這兩條命令都沒問題,那麼subversion已經安裝完畢了。1.建立目錄 mkdir home svn 2.建立專案倉庫 svnadmin create...