久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

svn沖突解決

 Keamou 2009-12-01
本人使用SVN的時間不是很長,在使用之前也僅僅是粗淺的了解過這個軟件,。從今年的8月份開始,由于一個項目使用Eclipse 3.1,,跨地域的開發(fā),為了適應(yīng)不同的開發(fā)人員處于不同的地理位置,,因此我們使用SVN作為團隊開發(fā)的管理工具。開始使用時,,僅僅是邊學(xué)邊用,遇到不懂的 地方再去查找資料,。今天由于有點時間,先把合并過程遇到的沖突問題詳細(xì)了解一下,。

       可以使用svn status -u命令來查看一下某個問題是否會有沖突發(fā)生。在使用svn update 的時候,,會出現(xiàn)如下一些信息:
$ svn update
U INSTALL
G README
C bar.c
Updated to revision 46.

那 么,U 開頭的信息提示你,,這個文件在你本地沒有修改過,,文件已經(jīng)根據(jù)版本庫的新版本更新了,。G 開頭的信息提示你,這個文件在你本地已經(jīng)修改過,,但是和版本庫中對應(yīng)的版本并沒有沖突的地方,svn已經(jīng)合并更新了,。而C 開頭的信息提示你,這個文件有點麻煩,你在本地的修改和版本庫中的版本修改的地方重疊了,,也就是說,你修改了某一行,,你的同事也修改了同一行。這個就需要 你自己手工去解決了,。當(dāng)沖突發(fā)生時,要注意到有三件事情可以幫助你解決問題,。
          a.Subversion會給這個文件作出c標(biāo)記,。
          b.如果Subversion認(rèn)為這個文件時可以合并的,,它會一個沖突標(biāo)記(特殊的橫線來分開沖突的代碼塊)
          c.對每一個沖突的文件,,Subversion放置三個額外的未版本化文件到你的工作拷貝。

filename.mine
     你更新前的文件,,沒有沖突標(biāo)志,只是你最新更改的內(nèi)容,。(如果這個文件不可以合并,.mine文件不會創(chuàng)建,,因為它和工作文件相同。)

filename.rOLDREV
     這個是你做更新操作以前的BASE版本,,就是你在上次更新之后未作更改的版本。

filename.rNEWREV
       這是Subversion從服務(wù)器剛剛收到的版本,。這個版本就是版本庫的HEAD版本,。


例 如,,如果sally修改了一個文件sandwich.txt, 而harry也剛剛修改了這個文件的相同位置并提交到服務(wù)器。那么sally在做這個文件的update操作的時候會得到三個額外的文件 sandwich.txt.mine,、sandwich.txt.r1、sandwich.txt.r2,。并且在提交的時候會遭到服務(wù)器的拒絕,,因為這個 文件的沖突問題還沒有得到解決。要解決這個沖突,,可以選擇:
          a. 手工合并沖突文件(檢查和修改文件中的沖突標(biāo)志),。
          b.用一個臨時文件(三個中的一個)覆蓋你的工作文件,。
          c.運行svn revert <filename>來放棄所有的修改。

一旦解決了你的沖突,,需要通過命令svn resolved讓subversion知道并刪除三個臨時文件,。這時才可以提交。

下面再說說手工合并沖突,。開始的時候讓人覺得害怕,但做一段時間之后,,就覺得不那么煩人了。

看看如下文本:
Mayonnaise
Lettuce
Tomato
Provolone
<<<<<<< .mine
Salami
Mortadella
Prosciutto
=======
Sauerkraut
Grilled Chicken
>>>>>>> .r2
Creole Mustard


一連串的大于,、小于,、等于號是沖突標(biāo)記,這些數(shù)據(jù)得全部刪除才可以提交,。其中,
    <<<<<<< .mine
Salami
Mortadella
Prosciutto
=======
是你在沖突區(qū)里面做的修改,。

Sauerkraut
Grilled Chicken
>>>>>>> .r2
是別人在沖突區(qū)做的修改,。

在沖突區(qū)中,,或許你需要和你的同事溝通來安排沖突區(qū)的文本內(nèi)容,如果是程序代碼,,你需要和同事商量一下,中間的這段代碼到底應(yīng)該是什么樣子的,。

所有沖突區(qū)得到合理的解決之后,你就可以提交你的文件了,。

命令行 Subversion 入門

如果您參與的項目正在使用 Subversion 進行版本控制,您將需要使用 Subversion 訪問和更改項目源文件。您可以點擊項目的左側(cè)導(dǎo)航窗格上的“Subversion”鏈接,,在線瀏覽源代碼以查看該項目的目錄結(jié)構(gòu)和文件,。

“Subversion”頁面顯示三個子目錄:branches/、tags/,、trunk/ 和一個自述文件。自述文件可以使您對 Subversion 存儲庫有一個整體了解,。您可以點擊“訪問選項”,查看 Subversion 客戶端安裝說明,。您的本地計算機上必須安裝有 Subversion 客戶端。

獲取項目的本地工作副本svn checkout

若要獲取最新源文件的“工作副本”,,您必須首先簽出這些源文件,這一過程會將文件從存儲庫復(fù)制到您的系統(tǒng)中,。在您的外殼程序或終端客戶端,請鍵入:

svn checkout https://(項目名稱).(域)/svn/(項目名稱)/(DIR) (項目名稱) --username [在此處輸入用戶名]

當(dāng)系統(tǒng)提示您時輸入您的用戶密碼,。此密碼應(yīng)與您在本站點中的用戶賬號的密碼相同,。不指定目錄將簽出整個項目源代碼。您可能希望簽出“trunk/”目錄,,因為此目錄具有工作“www/”文件夾,。

轉(zhuǎn)換:--revision (-r) REV, --quiet (-q), --non-recursive (-N), --username USER, --password PASS, --no-auth-cache, --non-interactive, --config-dir DIR

請參見基本工作周期,、初始簽出工作副本,。

注意:如果站點未啟用 SSL(安全套接字層),則在執(zhí)行 Subversion 操作時,,請使用 http 而不是 https。例如,,若要從項目的存儲庫中簽出最新的源代碼,,請使用以下命令:

svn checkout https://(項目名稱).(域)/svn/(項目名稱)/(DIR) (項目名稱) --username [在此處輸入用戶名]

處理 Subversion 存儲庫中的文件

從項目存儲庫中簽出本地副本后,,您可以在本地計算機上編輯現(xiàn)有文件,、創(chuàng)建新文件和目錄,、以及刪除文件。在您將所做的任何更改提交回 Subversion 存儲庫之前,,這些更改只對項目文件的本地副本起作用,。

將工作副本中的文件/目錄添加到存儲庫中svn add

在您第一次在工作目錄中創(chuàng)建并編輯新文件后,,可以將此文件添加到存儲庫中,,或添加一個目錄,,目錄中有無內(nèi)容均可。

svn add FILENAME/DIR,。

這樣就會在您的工作副本中添加文件/目錄,,并安排它們以添加到存儲庫中。您下次提交時,,會上載這些文件/目錄,,并將它們添加到存儲庫中,。如果您了添加內(nèi)容,但在提交前又改變了主意,,則可以使用 svn revert 取消添加內(nèi)容的安排。

轉(zhuǎn)換:--targets FILENAME, --non-recursive (-N), --quiet (-q), --config-dir arg, --auto-props, --no-auto-props

請參見添加文件/目錄示例,。

查看帶有修訂和作者信息的特定文件的內(nèi)容svn blame

若要在線查看指定文件的作者和修訂信息,請鍵入:

svn blame FILENAME

每行文本的開始處都以上次更改該行的作者(用戶名)和修訂版本號作為批注,。

轉(zhuǎn)換:--revision (-r) REV, --username USER, --password PASS, --no-auth-cache, --non-interactive, --config-dir DIR

查看特定文件的內(nèi)容svn cat

有時,與存儲庫相比較,,您的工作副本可能已過時,;或者您可能已修改了本地工作副本,。在這些情況下,,在提交更改或決定編輯您的工作副本之前,您會希望查看指定文件的內(nèi)容差異,。運行 svn cat FILENAME 將自動從存儲庫中取出 HEAD 修訂版本,。這條子命令主要用于檢索具有較舊修訂版本號的文件,并將其顯示在屏幕上,。通過在此站點上瀏覽項目源代碼,,也可以執(zhí)行相同的操作,。

轉(zhuǎn)換:--revision (-r) REV, --username USER, --password PASS, --no-auth-cache, --non-interactive, --config-dir DIR

清理工作副本svn cleanup

有時可能會出現(xiàn)“工作副本已鎖定”錯誤,。若要刪除鎖定,,并遞歸清理工作副本,,請使用 svn update,。

轉(zhuǎn)換:--diff3-cmd CMD, --config-dir DIR

請參見 svn cleanup,。

復(fù)制工作副本或存儲庫中的文件或目錄svn copy

在項目中,,您可能需要用到過去的舊文檔。例如,,您可能想要使用一個已存在的 HTML 文件,使用其代碼作為參考以在創(chuàng)建新內(nèi)容時保持產(chǎn)品外觀和感覺,。創(chuàng)建文件時,您無需從頭開始,,只需使用 svn copy 復(fù)制此文件,然后將其另存為其它名稱并更改其內(nèi)容,。您可以從存儲庫將文件復(fù)制為本地工作副本,,也可以將本地工作副本復(fù)制回存儲庫文件,。您還可以在本地工作副本內(nèi)部復(fù)制文件,。Subversion 不支持在存儲庫之間進行復(fù)制??墒褂?nbsp;svn copy SRC DST 完成此操作,。

轉(zhuǎn)換:--message (-m) TEXT, --file (-F) FILE, --revision (-r) REV, --quiet (-q), --username USER, --password PASS, --no-auth-cache, --non-interactive, --force-log, --editor-cmd EDITOR, --encoding ENC, --config-dir DIR

請參見 svn copy

從本地工作副本中刪除文件或目錄svn delete

您可能希望從本地工作副本中刪除不需要的文件,。使用 svn delete FILENAME 可安排刪除文件。僅當(dāng)您提交時,,才會在存儲庫中將該文件實際刪除,。

轉(zhuǎn)換:--force, --force-log, --message (-m) TEXT, --file (-F) FILE, --quiet (-q), --targets FILENAME, --username USER, --password PASS, --no-auth-cache, --non-interactive, --editor-cmd EDITOR, --encoding ENC, --config-dir DIR

查看文件之間的差異svn diff

可以使用 svn diff 顯示工作副本中的指定文件相對于存儲庫中相應(yīng)文件所做的本地修改。在命令提示符處,,請鍵入:

svn diff (文件的路徑) (項目存儲庫的 URL)

例如,若要將本地修改后的文件“index.html”與項目存儲庫中的相應(yīng)文件進行比較,,請鍵入:

svn diff $SRC/...../index.html https://(項目名稱).(域)/svn/(項目名稱)/trunk (項目名稱) --username [在此處輸入用戶名]

除此之外,,您也可以轉(zhuǎn)到該文件所屬的目錄,,并鍵入:

svn diff (FILENAME)

該命令將顯示差異,,并且?guī)в行抻啺姹咎枴?/p>轉(zhuǎn)換:--revision (-r) REV, --old OLD-TARGET, --new NEW-TARGET, --extensions (-x) "ARGS", --non-recursive (-N), --diff-cmd CMD, --notice-ancestry, --username USER, --password PASS, --no-auth-cache, --non-interactive, --no-diff-deleted, --config-dir DIR

請參見檢查歷史,、svn diff

在本地計算機上導(dǎo)出空目錄樹svn export

在您的本地計算機上,,可以從項目存儲庫或本地工作副本內(nèi)部提取一個無版本的副本,,也稱為空目錄樹,。若要從存儲庫中獲得較舊修訂版本的空目錄,請鍵入:

svn export [-r REV] [PATH]

該命令將從 URL 指定的存儲庫中的修訂版本 REV 位置(如果指定,,否則從 HEAD 位置)將空目錄樹導(dǎo)出到 PATH,。如省略 PATH,,則該 URL 的最后一部分將用作本地目錄名稱。除此之外,,您也可以在本地計算機內(nèi)部,,從一個工作副本(由 PATH1 指定)向另一工作副本(由 PATH2 指定)導(dǎo)出空目錄樹,。這將保留所有的本地更改,,但不會復(fù)制版本控制中的文件。若要執(zhí)行此操作,,請鍵入:

svn export PATH1 PATH2

轉(zhuǎn)換:--revision (-r) REV, --quiet (-q), --force, --username USER, --password PASS, --no-auth-cache, --non-interactive, --config-dir DIR

獲取有關(guān) Subversion 的幫助svn help

Subversion 可以在命令行界面為您提供幫助,。若要獲得有關(guān)特定子命令的幫助,請鍵入:

svn help [SUBCOMMAND...]

轉(zhuǎn)換:--version, --quiet (-q)

將您的更改提供給 SVN 存儲庫

對文件和/或目錄進行本地更改后,,您必須向 SVN 存儲庫提交這些更改,。

提交您的更改svn commit

若要向共享存儲庫提交您的更改,,請鍵入:

svn commit -m "請在此處鍵入您的理由"

如果您不包括對該文件更改的描述,,系統(tǒng)將提示您調(diào)用文件編輯器添加描述,然后 svn 才能完成提交操作,;否則將會出現(xiàn)“提交失敗”錯誤。所有的提交都會被自動記錄,,并發(fā)布到項目的提交討論中,。

轉(zhuǎn)換:--message (-m) TEXT, --file (-F) FILE, --quiet (-q), --non-recursive (-N), --targets FILENAME, --force-log, --username USER, --password PASS, --no-auth-cache, --non-interactive, --encoding ENC, --config-dir DIR

請參見提交您的更改editor-cmd,。

將無版本的文件或樹導(dǎo)入到項目存儲庫中svn import

您可以使用 svn import 將無版本的文件或樹遞歸提交到項目存儲庫中。將根據(jù)需要在存儲庫中創(chuàng)建父目錄,。使用下面的命令可以從 PATH 向 URL 遞歸提交副本。如果省略 PATH,,將認(rèn)為其為“.”。

svn import [PATH] URL

示例:若要在您的本地計算機上創(chuàng)建帶有一個文件的無版本目錄 (D),。請點擊項目左側(cè)導(dǎo)航窗格中的“Subversion”鏈接,找到 Subversion 頁面,。請注意,“瀏覽源代碼”下未列出 NEWDIR,。若要將 D 導(dǎo)入項目存儲庫,請鍵入:

svn import -m "請在此處鍵入您的信息" D http://(項目名稱).(域)/svn/(項目名稱)/NEWDIR

刷新該頁面,。請注意,此時“瀏覽源代碼”下列出了 D,。點擊 D 查看該文件,。

轉(zhuǎn)換:--message (-m) TEXT, --file (-F) FILE, --quiet (-q), --non-recursive (-N), --username USER, --password PASS, --no-auth-cache, --non-interactive, --force-log, --editor-cmd EDITOR, --encoding ENC, --config-dir DIR, --auto-props, --no-auto-props

打印有關(guān)工作副本中路徑的信息svn info

有時,,您將需要有關(guān)工作副本中文件的具體信息,以執(zhí)行某些子命令,。鍵入 svn info,將打印出詳盡且有用的信息,,這些信息涉及工作副本中的工作副本路徑中的項,其中包括:路徑、名稱,、URL、修訂版本,、節(jié)點類型、上次更改,、作者、上次更改修訂版本,、上次更改日期、上次更新的文本,、上次更新的屬性以及校驗和。

轉(zhuǎn)換:--targets FILENAME, --recursive (-R), --config-dir DIR

查看存儲庫中的目錄項列表svn list

在開始處理項目或取出“工作副本”之前,,您可能希望查看項目存儲庫中的內(nèi)容(即目錄和文件),,或查看本地工作副本中的目錄項。在命令提示符處鍵入 svn list [TARGET...],,也可以查看這些內(nèi)容。除此之外,,您也可以找到項目中的“軟件配置管理”頁,查看項目存儲庫,。

轉(zhuǎn)換:--revision (-r) REV, --verbose (-v), --recursive (-R), --username USER, --password PASS, --no-auth-cache, --non-interactive, --config-dir DIR

查看提交日志信息svn log

如果要查看“工作副本”或存儲庫中文件/目錄的各個文件/目錄歷史,,以跟蹤修訂信息,請鍵入:

svn log [PATH]

該命令會顯示出文件/目錄的修訂信息,,從最近所做的修訂版本開始顯示提交信息和作者姓名等信息。除此之外,,您也可以使用該站點,,查看項目存儲庫中各個文件的提交日志信息。請點擊項目左側(cè)導(dǎo)航窗格中的“Subversion”鏈接。將出現(xiàn) Subversion 頁,。搜索“瀏覽源代碼”的目錄中的文件,,然后點擊文件名,。這時將會顯示一個提交日志信息頁面。

轉(zhuǎn)換:--revision (-r) REV, --quiet (-q), --verbose (-v), --targets FILENAME, --stop-on-copy, --incremental, --xml, --username USER, --password PASS, --no-auth-cache, --non-interactive, --config-dir DIR

請參見 svn log,。

合并更改svn merge

您可以運行 svn merge 命令,,以指示 Subversion 將存儲庫中最新版本的文件合并到您的工作副本中,。

轉(zhuǎn)換:--revision (-r) REV, --non-recursive (-N), --quiet (-q), --force, --dry-run, --diff3-cmd CMD, --ignore-ancestry, --username USER, --password PASS, --no-auth-cache, --non-interactive, --config-dir DIR

請參見 svn merge,、解決沖突(合并其他人的更改),、分支和合并:常見合并使用案例,、合并最佳實踐

使用存儲庫

創(chuàng)建新目錄svn mkdir

若要在您的工作副本中創(chuàng)建新目錄,,請鍵入:

svn mkdir PATH

若要在您的項目存儲庫中創(chuàng)建新目錄,請鍵入:

svn mkdir URL

PATH 或 URL 的最后一部分決定目錄名稱,。在立即提交時在存儲庫中創(chuàng)建目錄,所以還需要一條提交信息

轉(zhuǎn)換:--message (-m) TEXT, --file (-F) FILE, --quiet (-q), --username USER, --password PASS, --no-auth-cache, --non-interactive, --editor-cmd EDITOR, --encoding ENC, --force-log, --config-dir DIR

移動文件或目錄svn move

您可以使用 svn move SRC DST 在工作副本或項目存儲庫內(nèi)部移動文件或目錄,。此命令等效于在使用 svn copy 后,,再使用 svn delete,。在工作副本內(nèi)部移動文件或目錄,,不僅會移動該文件或目錄,而且還將安排它以便于下次提交時進行添加,。在項目存儲庫內(nèi)部移動文件或目錄屬于封閉單元式提交,,所以需要一條提交信息。

轉(zhuǎn)換:--message (-m) TEXT, --file (-F) FILE, --revision (-r) REV, --quiet (-q), --force, --username USER, --password PASS, --no-auth-cache, --non-interactive, --editor-cmd EDITOR, --encoding ENC, --force-log, --config-dir DIR

使用屬性

Subversion 具有很多具體屬性,,這些屬性影響或決定其行為,。您可以修改,、提交和撤消屬性更改,就像對文件內(nèi)容所執(zhí)行的操作一樣,。您還可以從本地工作副本或項目存儲庫的文件,、目錄或修訂版本中,刪除,、編輯,、打印,、列出以及設(shè)置屬性。

請參見 屬性,、無版本屬性元數(shù)據(jù)屬性,、svn propdel,、svn propeditsvn propget,、svn proplistsvn propset,、Hook 腳本,。

解決沖突svn resolved

更新本地工作副本時,可能會遇到?jīng)_突,。您需要解決此沖突,。解決沖突后,鍵入 svn resolved PATH...,,通知工作副本該沖突已“解決”,。

轉(zhuǎn)換:--targets FILENAME, --recursive (-R), --quiet (-q), --config-dir DIR

請參見解決沖突(合并其他人的更改),。

撤消您的更改svn revert

使用 Subversion 時,,您會發(fā)現(xiàn) svn revert PATH... 等效于 Windows 中的 Ctrl Z,。您可以:

  • 撤消本地工作副本中的任何本地更改,從而解決沖突狀態(tài),。
  • 撤消工作副本中的條目內(nèi)容及屬性更改,。
  • 取消任何進度安排操作,如添加文件,、刪除文件等,。

注意,,如不提供目標(biāo),,會導(dǎo)致工作副本中的更改丟失,。

轉(zhuǎn)換:--targets FILENAME, --recursive (-R), --quiet (-q), --config-dir DIR

獲取文件/目錄的狀態(tài)svn status

在版本控制中,將更改提交到項目存儲庫之前最好對其進行審查,??梢赃\行 svn status 打印工作副本中的文件和目錄的狀態(tài),。打印結(jié)果為八列編碼輸出,。由于每列都有詳盡的圖例,若要從此輸出中得出“無錯誤”的結(jié)論幾乎不可能,。若要使此任務(wù)更加簡單,并同時可看到示例,,請在命令提示符處鍵入 svn help status,。

轉(zhuǎn)換:--show-updates (-u), --verbose (-v), --non-recursive (-N), --quiet (-q), --no-ignore, --username USER, --password PASS, --no-auth-cache, --non-interactive, --config-dir

請參見檢查你的更改,。

轉(zhuǎn)換工作副本svn switch

可以使用 svn switch URL [PATH] 更新工作副本,,以鏡像新的 URL,。您還可以將工作副本或部分工作副本移動到新的分支。您可以將此子命令用作分支的快捷方式,。

轉(zhuǎn)換:--revision (-r) REV, --non-recursive (-N), --quiet (-q), --diff3-cmd CMD, --relocate, --username USER, --password PASS, --no-auth-cache, --non-interactive, --config-dir DIR

請參見轉(zhuǎn)換工作副本,、分支和合并以及 svn switch,。

更新工作副本svn update

為了進行更好的版本控制,建議您每天用項目存儲庫更新本地工作副本,,請使用:

svn update [PATH...]

列出的已更新條目以及它們的當(dāng)前狀態(tài)顯示如下:

  • A = 已將一個文件添加到您的工作副本中,。
  • U = 已更新您的工作副本中的一個文件。
  • D = 已從您的工作副本中刪除一個文件,。
  • R = 已替換您的工作副本中的一個文件,。
  • G = 已成功合并了一個文件。
  • C = 一個文件已合并了必須手動解決的沖突

轉(zhuǎn)換:--revision (-r) REV, --non-recursive (-N), --quiet (-q), --diff3-cmd CMD, --username USER, --password PASS, --no-auth-cache, --non-interactive, --config-dir DIR

請參見更新你的工作副本,、手動合并沖突,。

分支和標(biāo)記

項目的主干通常用作開發(fā)主線,而分支通常用作主線的變更,。分支是正在進行的開發(fā)線,。在軟件開發(fā)生命周期中,如果軟件產(chǎn)品的發(fā)布版本已到期,,經(jīng)常會用到分支,,使測試者可以使用候選版本,,使新的開發(fā)可以繼續(xù)進行,,不受測試的約束,。分支還用于實驗性工作,,以及完成代碼重寫。標(biāo)記是將一組文件修訂版本標(biāo)記為整體的方式,。雖然分支和標(biāo)記都是使用 svn copy 子命令創(chuàng)建的,,但它們是完全不同的,。分支表示多個修訂版本而標(biāo)記只表示單個修訂版本。

本站點上您項目的 Subversion 存儲庫支持對您的源文件進行分支和標(biāo)記,。對于 Subversion 來說,,標(biāo)記和分支屬于簡單實用的“復(fù)制”操作。

若要創(chuàng)建分支或標(biāo)記項目文件,,請鍵入:

svn copy SRC DST -m "在此處鍵入您的信息"

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多