web-dev-qa-db-ja.com

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

通常は注意することで問題を回避できますが、作業中のブランチを再確認する必要がある場合もあります(eg "hmm ...私はdevブランチにいます、右?))ランダムファイルのソース管理パスをチェックします。

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

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

27
henginy

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

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

開発\ myproject

または

Main\ myproject

または

リリース\ myproject

それが役に立てば幸い

16
ynnok

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

~/henginy/projects/MY_PROJECT-trunk
~/henginy/projects/MY_PROJECT-dev
16
Matthew Rodatus

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

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

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

一度に数分だけdevブランチを開いて、すぐに閉じます。

8
CaffGeek

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

7
robstel

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

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

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

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

また、prodにログインすると、背景が赤に設定されます。簡単な視覚的通知が非常に効果的だと思います。

あなたはあなたのコンピュータに戻った後、これが最もよく見られると述べました。私が去ったときに現在のフォーカス(ブランチ、バグ番号、機能)がキーボードにくっついて、それが最後に行ったものを再作成するのではなく、すばやく作業に戻ることができるという非常に効果的な投稿を見つけました。

6
mitchellhislop

これに役立つ TFS Solution Info と呼ばれる無料のVisual Studio拡張機能があります。現在のブランチとワークスペースを小さなウィンドウに表示し、どこにでもドッキング/ピン留めできます。

4
Glenn Arndt

私は VSCommands 拡張機能(Visual Studio 2012では2010バージョンがあります)を使用していて、画面の左上隅とソリューションエクスプローラーにブランチ名を簡単に配置できます。

製品とは関係なく、ただの幸せなユーザーです。

3
R0MANARMY

oneブランチでほぼすべてを行うことで、間違ったブランチでの作業を回避します(トランク内-いわゆる「不安定なトランク」ごとに ブランチ戦略 )。

ブランチの更新を余儀なくされるケースは非常にまれです-これらはプロダクション前およびポストプロダクションのバグ修正です(製品候補コードはブランチで分離されています)。これらの修正もトランクにあるはずなので、私は通常、ドラフトを作成し、テストし、トランクで確認してから、prodブランチに移植します。原則として移植には、分岐してビルドチェックする1〜5個のファイルの単純なコピーが含まれます。

  • 私のプロジェクト管理のほとんどで、古いものにパッチを適用するのではなく、新しいリリースを使用するように顧客を説得することを好んだことも多少幸運です-これにより、ブランチの更新のポストプロダクション部分がほぼ無視できる最小値。
2
gnat

ここにはすでにたくさんの答えがありますが、私が作業している単純なソリューションには触れていません。ブランチごとに、新しいVM dev環境を含み、適切なブランチからチェックアウトします。あなたはそれを行うだけで、それを一度正しく行うだけで済み、その後、VMを切り替えてブランチを切り替えるだけです。

1
Mason Wheeler

具体的な答えは、使用しているバージョン管理ソフトウェアによって異なりますが、通常、作業中のブランチを簡単に確認できるコマンドがあります。たとえば、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
Caleb