間違ったブランチで作業することをどのように回避しますか?


27

通常、問題を回避するには注意するだけで十分ですが、時々、ランダムのソース管理パスをチェックして、作業中のブランチを再確認する必要があります(例:「うーん... devブランチにいますか?」)ファイル。

もっと簡単な方法を探して、それに応じてソリューションファイルに名前を付けることを考えました( MySolution_Dev.sln)が、各ブランチで異なるファイル名を使用して、ソリューションファイルをマージすることはできません。

大したことではありませんが、正しいブランチにいることをすばやく確認するために使用する方法や「小さなトリック」はありますか?TFS 2008でVisual Studio 2010を使用しています。


2
これは、VS 2010拡張機能を作成するための適切な候補のように思えます。これにより、ブランチを示す構成可能な視覚的キューの一種が可能になります。おそらく、ユーザー設定に従ってソリューションエクスプローラーの背景を色付けします(開発では緑色、品質保証では黄色、製品では赤色)。
ジェシーC.スライサー

良いアイデアです。VSタイトルバーのインジケータでさえも役立ちます。
henginy

1
それはかなり効果的だと思います。gitブランチを含めるようにbashプロンプトを設定し、ソースファイルがクリーンであるかどうか、またはチェックインが必要かどうか
-Daenyth

TFSには、またはと同等のものはありませんgit statushg status

私はTFS操作にVSユーザーインターフェイスを使用しているので、実際には考えがありません。
henginy

回答:


16

私はこれを使用しています http://visualstudiogallery.msdn.microsoft.com/f3f23845-5b1e-4811-882f-60b7181fa6d6

タイトルを次のように更新します。

開発 \ myproject

または

メイン \ myproject

または

リリース \ myproject

それが役に立てば幸い


それはそれを行うようだ、私はそれを試してみよう..
henginy

私はまさにこの目的のためにこの拡張機能を使用します。実際、ynnokがすでに持っているのを見たとき、私はリンクを投稿しようとしていました。
ボブソン

1
私はこのブランチを自分のブランチのタイトルで見ることができるので、これを使用することになりました。本当にすごい!!!
ピョートルクラ

はい、それは確かに非常に便利です!
henginy

16

作業ディレクトリに別の名前を付けます。つまり、プロジェクトのタイトルが「MY_PROJECT」の場合、各ブランチに異なる作業ディレクトリを作成します。「dev」という名前のブランチが1つある場合、次のように、トランク用のディレクトリとdev用のディレクトリが必要になります。

~/henginy/projects/MY_PROJECT-trunk
~/henginy/projects/MY_PROJECT-dev

実際の作業ディレクトリの名前は異なります。しかし、既に開いているVisual Studioを使用している場合(たとえば、休憩を取ってデスクに戻った後)、ファイルのパスを確認してディレクトリを確認する必要があります。だから私はそれが最も簡単な方法であり、そこから脱出できないと思いますか?
-henginy

2
@henginyそれは良い説明です。Visual Studioでそれを確認するには、開いているファイルのタブにカーソルを合わせます。ファイルシステムの完全パスのツールチップが表示され、そこからルートが「-dev」か「-trunk」かを判断できます。それを試して、それがあなたのために働くかどうか確かめてください。
マシューロダトゥス

1
はい、それがまさに「ランダムファイルのソース管理パスをチェックする」方法であり、より迅速な方法を見つけようとしています:)
henginy

@henginyああ、そうです。あなたはOPでそれを言った。私は私の頭の上からより良い方法を知りません。私はあなたの状況をまったく改善していないように聞こえます。:-(
マシューロダタス

私の質問でそれをより明確にすべきでした。ご協力ありがとうございました!
henginy

8

私は、一般的な開発ブランチやトランクブランチでは働いていません。

私は常に機能ブランチで仕事をしています。機能が完成したら、次の手順に従います。

  1. ソース管理エクスプローラーを開きます。
  2. devから現在の機能ブランチにマージします。
  3. 競合を修正し、すべてが機能することを確認します。
  4. もう一度チェックインしてください。機能をdevブランチにマージします。
  5. オープン開発ソリューション。
  6. チェックインdevブランチ。
  7. 開発ソリューションを閉じます。
  8. CIをビルドしてデプロイします。

devブランチは一度に数分間しか開いておらず、すぐに閉じます。


7

トランクにTHIS_IS_TRUNK.txt、DEVにTHIS_IS_DEV.txtなど、各ブランチに空のファイルを作成できます。


2
これは実際に機能する可能性があります。特に、ファイル名の前にアンダースコアを付けて、ソリューションエクスプローラーで上に移動します。
-henginy

6

コマンドラインから(D)VCSの多くの作業を行います。あなたがいる場所にプロンプ​​トを表示することを強くお勧めします。たとえば、Gitリポジトリでのプロンプトは次のようになります(SVNでも同様です)。

[BranchName]RepoTop/path/to/current/wd >>

そして、レポジトリが現在ダーティである場合(コミットされていない変更):

[BranchName!!]RepoTop/path/to/current/wd >>

prodにログインすると、背景が赤に設定されます。シンプルな視覚的通知は私にとって非常に効果的だと思います。

あなたは、あなたのコンピューターに戻った後、これを最も頻繁に見ると述べました。最後に行った作業を再作成するのではなく、すぐに仕事に戻ることができるようにするために、現在のフォーカス(ブランチ、バグ#、機能)をキーボードに貼り付けたまま、ポストイットノートを見つけます。 。



3

私が使用してきたVSCommandsの拡張子(Visual Studioの2012年としたが、2010年バージョンがあります)、それは便利、画面の左上隅にだけでなく、ソリューションエクスプローラに支店名を置きます。

製品とは一切関係ありません。ただの幸せなユーザーです。


1
それはあなたが必要とされない場合があります:(すべての余分なものを支払うになった悲しげにクールな悪いように見える
ピョートル・クラ

2

1つのブランチ(トランク-いわゆる「不安定なトランク」ブランチ戦略)でほとんどすべてを行うことで、間違ったブランチで作業することを避けます。

ブランチの更新を余儀なくされるケースは非常にまれです-これらは生産前および生産後のバグ修正です(製品候補のコードはブランチで分離されています)。これらの修正もトランクにあるはずなので、私は通常、トランクですぐにドラフト、テスト、および検証を行い、prodブランチに移植します。ルールとしての移植には、1〜5個のファイルの単純なコピーが含まれており、分岐してビルドチェックを行います。

  • また、ほとんどのプロジェクト管理で、古いリリースにパッチを適用するのではなく、新しいリリースを使用するように顧客を説得することを好みました。これにより、ブランチの更新のポストプロダクション部分がほとんど無視できます。

実際、以前のリリースを維持する必要がないのは素晴らしいことです。その場合、実験目的でのみブランチを使用します。
-henginy

@henginy以前のリリースをまったく維持する必要がないという贅沢があったケースを思い出せません。しかし、経営姿勢は、ここでは大きな違いを生むことができます。それに応じて、1つは、例えばいずれかのすべてのこれらの半分の時間古い枝や混乱中1-2ホットフィックス/年を実現することができます
ブヨ

1

具体的な答えは、使用しているバージョン管理ソフトウェアによって異なりますが、通常、作業中のブランチを簡単に確認できるコマンドがあります。たとえば、Subversionではsvn info、ディレクトリでコマンドを使用して、そのブランチのURLを表示します。特定のファイルに関心がある場合は、それも指定できます。

caleb-dev$ svn info foo.c 
Path: foo.c
Name: foo.c
URL: https://svn.mycompany.com/repo/sample/branches/caleb-dev/foo.c
Repository Root: https://svn.mycompany.com/repo/sample
Repository UUID: d62f7aef-3ad2-6098-12a-c16647d854ab
Revision: 1042
Node Kind: file
Schedule: normal
Last Changed Author: caleb
Last Changed Rev: 1031
Last Changed Date: 2011-06-07 15:28:27 -0400 (Tue, 07 Jun 2011)
Text Last Updated: 2011-06-08 03:08:12 -0400 (Wed, 08 Jun 2011)
Checksum: 123456789098765432123456789098

URLから、foo.cのコピーがcaleb-devブランチにあることがわかります。

ローカルディレクトリの名前はブランチと同じなので、それほど頻繁に行う必要はありません。通常、コマンドラインプロンプトをすばやく確認するだけで、適切なディレクトリにいること、したがって適切なブランチで作業していることを確認できます。


1

すでに多くの回答がありますが、私が作業しているシンプルなソリューションに触れているものはありません。各ブランチについて、開発環境を含む新しいVMを作成し、適切なブランチからチェックアウトします。それを一度行うだけで正しく実行でき、VMを切り替えてブランチを切り替えるだけです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.