2009-05-01 18 views
13

我從來沒有真正與很多人合作過,我們必須檢查代碼並擁有舊代碼庫等。我不確定我甚至不知道這些術語的含義。如果我想開始一個涉及所有代碼更改的超過我自己的新項目,「檢查」(再次,不知道這意味着什麼),我該如何開始?這是SVN的用途嗎?還有別的嗎?我是否下載了能跟上代碼的程序?如何「簽出」代碼?

我該怎麼辦?

它將全部在家中。沒有互聯網存儲代碼。

我甚至不知道我要求的是什麼叫源代碼控制。我看到關於檢查,SVN,源代碼控制等的內容。我不知道這是不是都在談論同樣的事情。我希望能使用開源的東西。

+6

源代碼管理對於單個開發人員項目也非常有用 - 一旦你瞭解它,你就會看到。 – Arjan 2009-05-01 17:26:41

+1

Subversion是開源的,就像git和mercurial一樣。 – 2009-05-01 17:41:06

+0

由於您的其他問題主要是基於Windows的:您使用的是什麼IDE?儘管IDE中的集成不是使用某些源代碼管理的必要條件,但它確實有所幫助。實際上,在Eclipse中完成我所有的每日CVS和SVN事情,我幾乎不再執行任何命令行任務。在Eclipse中的CVS和SVN集成是好的(儘管後者需要一個插件),所以CVS和SVN是我的項目的不錯選擇,但我不知道其他IDE。 – Arjan 2009-05-01 21:59:15

回答

19

因此,很久以前,在昔日的糟糕的舊時代,源代碼管理使用了圖書館的隱喻。如果你想編輯一個文件,避免衝突的唯一方法是確保你是唯一一個編輯文件。你要做的是要求源代碼管理系統「檢出」該文件,表明你正在編輯它,並且沒有其他人被允許編輯它,除非你進行了更改並且文件被「簽入」了。如果您需要對已簽出的文件進行更改,則必須去查找自上週二起檢測出所有內容的freakin'開發者.freakin'Bill ...

無論如何,源代碼管理並沒有像現在這樣工作,但語言與我們保持一致。現在,「檢出」代碼意味着從代碼庫下載代碼的副本。這些文件將出現在本地目錄中,允許您使用它們,編譯代碼,甚至可以對源代碼進行更改,以便在需要時可以稍後將其上傳回存儲庫。更好的是,只需一個命令,就可以獲得自上次下載代碼以來其他開發人員所做的所有更改。好東西。

有幾個主要的源代碼控制庫,其中SVN(也稱爲Subversion)是一個(CVS,Git,HG,Perforce,ClearCase等等)。我建議從SVN,Git或HG開始,因爲它們都是免費的,並且都有優秀的文檔。

即使您是唯一的開發人員,也可能要開始使用源代碼管理。沒有什麼比認識到昨天晚上把你刪除的一千行代碼實際上非常重要並且現在永遠丟失了。源代碼控制允許您在文件的歷史記錄中向前或向後縮放,讓您輕鬆地恢復您不應該刪除的內容,併爲您刪除無用的內容提供更多的信心。另外,獨自擺弄它是很好的做法。

熟悉源碼/版本控制軟件是任何認真軟件工程師的重要工作技能。掌握它將有效地提升你作爲一名專業開發人員。進入一個項目並發現該團隊將所有來源保存在某個文件夾中是一個糟糕的體驗。祝你好運!只要有興趣,你就已經走在正確的道路上了!

19

退房埃裏克庫的優秀系列文章:

Source Control HOWTO

+4

Upvote for(unintentional?)pun – 2009-05-01 17:31:39

+0

是的,這是無意的。 :)...但是再次.. – 2009-05-01 17:35:15

1

你創建需要的源代碼控制項目?如果是這樣,請選擇滿足您需求的源代碼管理系統,並閱讀文檔以瞭解如何設置它。如果您只是在現有項目中使用以前設置的源代碼管理系統,請詢問已使用它的同事,或詢問設置源代碼管理系統的人員。

爲了選擇能夠滿足您需求的源代碼控制系統,大多數源代碼管理系統都在線提供其功能的大量描述,許多提供評估甚至完全免費的產品,並且有許多關於每個人的工作原理的許多軼事描述源代碼管理系統就像,可以提供幫助。

只要不使用微軟Visual SourceSafe如果你重視你的理智和你的代碼。

2

我推薦GitSubversion (SVN)都是免費的,開源的版本控制系統,工作得很好。鑑於它可以更容易地分散工作,Git有一些很好的功能。

2

簽出意味着從源代碼管理系統中檢索文件。源代碼管理系統是一個數據庫(有些像CVS,只使用特殊標記的文本文件,但文件系統也是一個數據庫),它包含代碼的所有版本(在您進行修改後簽入)。

微軟Visual SourceSafe使用一個非常專有的數據庫,如果它沒有定期維護並且僅使用保留的檢出,那麼這個數據庫很容易腐敗。不要因爲所有這些原因而使用它。

保留結帳和無保留結帳之間的差異處於毫無保留的結帳狀態;兩個人可以一次修改同一個文件。第一個簽入沒有任何問題,第二個必須將他們的代碼更新到最新版本並將更改合併到他們的代碼中(這通常會自動發生,但是如果文件的相同區域發生更改,那麼存在一個衝突,必須先解決才能進行檢查)。

對於無保留結賬的一些參數,請參見here

接下來,您將看到獨立檢查代碼並構建源代碼的構建過程,以便每個人的更改都被構建並一起分發。