2012-08-09 60 views
3

(這個問題我贏得了一個滾草徽章SuperUser,但我被告知要嚐嚐它來代替)幹線和支線之間切換符號鏈接

我的工作我的LAMP開發服務器上的一個重要分支,但我經常需要對主幹進行輕微但緊急的更新。

  • 我想使用相同的本地網址爲取工作拷貝我在(不想多個站點 - 懶惰,書籤,維護)
  • 我不希望有未完成的承諾在分支機構工作,以便我可以切換到中繼線五分鐘。
  • 我使用的是顛覆,所以我沒有相當於git存儲。

我正在嘗試從符號鏈接(foo)爲我的本地站點服務,然後我可以重寫它以指向分支或主幹。這讓我來回切換,而不必擔心提交的修改,意味着我可以使用相同的書籤,路徑別名等

# svn working copies for trunk and branch 
/sites/footrunk/ 
/sites/foobranch/ 
/sites/foo -> foobranch #symbolic link 

# eg to switch to trunk 
cd /sites; 
ln -s footrunk foo_tmp && mv -fT foo_tmp foo 
cd -; 
sudo service apache2 restart 

我的問題是阿帕奇偶爾得到一臺交換機後,立即疑惑,似乎保持空的,舊的或重複的(不能在PHP中重新聲明類錯誤?)版本的文件。重新啓動apache似乎可以解決所有問題,但是我的腦海裏正在發出警告。

這是符號鏈接的合理使用,還是我只是爲未來儲蓄問題?

回答

3

我廣泛使用了符號鏈接來源代碼公共庫。共享庫改變了,每個項目都會獲得最新的代碼。我以這種方式管理了許多項目,看起來非常合理。

直到我意識到符號鏈接庫中存在嚴重問題。好吧,改變每個人都受益的源代碼。 20哈德森後來建立和你開始想,啊是啊不是一個好主意,如果一個項目4年前,通過符號鏈接,失敗......

我們刪除我們的代碼的依賴,爲什麼我們不部署環境...

全心全意,不,使用符號鏈接從長遠來看並不是一個好主意,是的,警告鈴應該熄滅。

有什麼替代方案?

仍然使用符號鏈接我會爲每個獨特的項目分支鏈接庫並引用這些鏈接庫。這仍然意味着鏈接庫,當你在分支和中繼之間切換時,也會造成頭痛。它達到了我完全刪除符號鏈接的程度。

我現在有兩種方法,第一種是我爲庫創建一個eclipse庫項目,並從我的其他項目中引用它。另一個是我創建一個jar或swc(flash lib),並直接導入這些作爲依賴在我的項目中。如果項目的源發生更改,那麼我可以更新項目或重新導入建立在哈德遜上的庫。

我的場景不使用Appache,所以我沒有幫助,但通常使用符號鏈接,特別是在SVN中應該保持清晰的項目工作。

此外,對符號鏈接的更改不是我相信的版本。它們是靜態的,不能跟蹤對它們的更改。 (請糾正我,如果我在這一點上是錯誤的)。如果我是正確的,他們也不會在不同的存儲庫之間旅行或工作。

編輯2

按照註釋,或許這可能幫助,當我想同時投放軀幹和Apache的我將使用Apache別名的項目的分支。當然,你可能會遇到uri問題,所以它可能無法正常工作,但它是一種替代方法。這又完全取決於你的設置(我猜我缺少一些關於sym鏈接如何爲你工作的東西)。

>touch /etc/apache2/other/emiles.conf 
>pico /etc/apache2/other/emiles.conf 

..添加以下內容。

Alias /fooBranch "/Users/emile/fooBranch" 
Alias /fooTrunk "/Users/emile/fooTrunk" 

<Directory "/Users/emile/fooBranch"> 
    Options +Indexes +MultiViews +FollowSymLinks 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
</Directory> 
#copy above with "/Users/emile/fooTrunk" 

重啓appache,然後同時訪問

http://localhost/fooBranch 
or 
http://localhost/fooTrunk 

你甚至可以設置本地主機只是參考fooTrunk,或者使用不同的端口,虛擬主機(這我沒那麼熟悉) 。

+0

謝謝埃米爾,但我沒有使用符號鏈接來引用外部資產。每個工作副本都是獨立的。這只是我想要在使用相同的本地LAMP設置時在2個工作副本之間切換的便利(可能會有未提交的更改)。 – Ken 2012-08-19 13:55:17

+1

是的,對於依賴關係,我完全同意「全心全意,不,從長遠來看,使用符號鏈接並不是一個好主意,是的,警告鈴聲應該會消失」 – Ken 2012-08-19 13:56:43