2013-10-21 27 views
0

有什麼辦法可以生成一些C#常量,其中的值是當前分支的名稱?在C#常量中包含分支名稱?

我的目標是產生這樣的:

public static Constants { 
    public const string MyProductVersionName = "release/V0.2"; 
} 

release/V0.2是當前分支的名稱)。

我的問題同時適用於TFS 2013和/或GIT,因爲我正在評估兩個源代碼管理服務。

我看Tf Command-Line Utility Commands看看我是否可以調整預編譯事件,但我沒有找到如何獲取當前分支名稱。

使用Git,我在another answer on SO發現這個命令行:

git rev-parse --abbrev-ref HEAD 

這工作得很好。

在這兩種情況下,生成這樣的文件的正確方法是什麼?

+0

使用TFS 2013,您可以使用Git回購。 –

+0

@AndrewClear:我知道。但是,是否有一個集中的Git託管在TFS託管或不會改變分支一代... –

回答

1

我從來沒有不幸不得不使用TFS,所以不能幫助那裏。

使用git,您已經確定瞭如何獲取當前分支名稱。這個技巧就是使用它來將文件中的字符串替換爲預生成事件。我建議使用powershell,因爲它可以提供比cmd更簡單易用的搜索/替換功能。

文件更改爲類似:

public static Constants 
{ 
    public const string MyProductVersionName = "[BRANCH_VALUE]"; 
} 

後來看到How to capture output in a variable rather than a logfile?的混帳的輸出捕獲到一個PowerShell變量的細節。然後How can you find and replace text in a file using the Windows command-line environment?查找和替換的詳細信息。

然後想法是在預編譯事件中用git分支替換[BRANCH_VALUE]

+1

我懷疑我也可以使用T4模板,依賴endte ...但後生成腳本將更容易創建。只是等待一個TFS解決方案:)。 'tf.exe分支。/t'給出這些信息,但是需要很高的解析力。 –

相關問題