2009-11-13 60 views
0

所以我很新的版本控制,但我試圖在我的Mac上使用Mercurial來保持大型Python數據分析程序的組織。我通常克隆我的主存儲庫,稍微調整克隆的代碼,然後在我的數據上運行代碼。如果更改成功,我會提交併最終將更改推回到我的主存儲庫。我想這是版本控制下的一個非常典型的工作流程。將PATH用於版本控制(Mercurial)的可執行文件的建議

我的問題是我的代碼在命令行上運行,有幾個命令行參數引用了當前工作目錄中的數據文件(並且我有很多這樣的目錄需要測試代碼,他們不在版本控制之內)。所以在使用Mercurial之前,我只是將我的代碼保存在一個〜/ bin目錄中,這是我的PATH環境變量的一部分。現在,通過版本控制,我需要(1)在每次編輯之後,在命令行運行代碼之前將我的當前克隆的可執行文件複製到〜/ bin目錄,或者(2)每次克隆我的代碼時,添加我的當前克隆的PATH路徑,或(3)每次運行代碼時在命令行上指定整個/ path/to/my /程序。這些都不是很方便,我仍然覺得必須有一個我不知道的優雅解決方案。也許涉及Mercurial的鉤子?我希望我的修訂版代碼可以在提交之間的命令行上運行,所以這似乎排除了掛鉤,但我不知道......非常感謝您的任何建議!

回答

0

如果您想繼續使用多重克隆工作流程,Ry4an的回答很好。但值得注意的是,Mercurial的強大功能足以讓您在不離開單一「主要」回購的情況下爲您提供該工作流程的大部分優勢。即您可以爲實驗性功能創建分支(命名或匿名),輕鬆地將「hg update」更改爲您要測試的任何版本的代碼,甚至可以使用mq擴展名來修剪那些無法運行的分支。

+1

感謝Carl,我不理解分支和克隆之間的差異。如果其他人在Mercurial學習曲線上的相同位置,這裏有一個比較不同的分支代碼的方法: http://stevelosh.com/blog/entry/2009/8/30/a-guide到分支在水銀/ 我在想「分支與命名分支」最適合我的工作流程 - 單個工作目錄可以在我的路徑;我正在測試的各種代碼迭代獲取名稱以保持組織,並且我可以「更新」我想要的任何內容,並按照您的建議修剪我的失敗。再次感謝! – wgrover 2009-11-17 01:31:27

0

我在這種情況下所做的是在我的當前克隆中爲我的二進制文件設置了兩個深度鏈符號鏈接。例如,我將有:

/usr/bin/myappname 

這是一個符號鏈接

/home/me/repos/CURRENT/bin/myappname 

這裏的/ home/ME /回購/電流是一個符號連接到任何我目前的工作克隆,例如:

/home/me/repos/myproject-expirment 

建立初始的/ usr/bin中/ myappname符號鏈接,當我創建上我正在一個新的克隆都是我所要做的就是更新當前的符號鏈接之後。

+0

感謝Ry4an,符號鏈接沒有出現在我身上,但他們肯定會改進我現在所做的(將當前二進制文件複製到我的bin目錄中)。 – wgrover 2009-11-17 01:14:44

相關問題