web-dev-qa-db-ja.com

雇用主がVSSを使用している場合、Gitをどのように使用すればよいですか?

私はVSSで作業するつもりですが、GITの方がはるかに生産的で勤勉です。

私はVSSのワークフローに適合し、VSSの良い履歴を保持する必要があります。ここでのVSSの標準ワークフローは

  • 作業コピーを取得
  • 仕事する
  • フォルダを右クリック->違いを表示
  • その見解では:
    • チェックアウト(ローカルの変更を上書きしない)
    • チェックイン(書き込みアクセスを維持)
    • 特定のテンプレートでコメントを追加する

個人的には、これはVSSの意図されたワークフローをすでに回避しており、他の人が行った変更を上書きする可能性があると思います。

可能性のある上書きを防ぐことができると思いますが、このワークフローで注意すべき他の潜在的な問題はありますか?

-編集-

この場合、VSSはレガシープロジェクトでのみ使用され、VSSを使用する人々とそれを維持する人々の両方が軽蔑をもって扱われていることに言及する価値があります。

それを使用する人の80%が、別のバージョン管理システム(一部のgit、ほとんどのMercurial)と併用します。

私のシステム管理者に私のワークフローについて尋ねたところ、する必要がありますであると、「好みに応じて」と言われました。私は私の考えで彼らを最新に保ち、彼らは結果に興味を持っています。

私はしません VSSを保守する人と話し合っていない限り、極端な方法(以下の私のスクリプトなど)を使用することをお勧めします

5
chrispepper1989

あなたは何かを忘れています-VSSでの標準的なワークフローは:

  • チェックアウト作業コピー
  • (オプションで、他の人がいくつかのファイルをロックしていると文句を言う)
  • ファイルで作業する
  • (オプションで、ファイルがロックされているという苦情に対処します)
  • チェックインファイル。

理解する必要があるのは、読み取り専用コピーを取得することはできますが、ファイルをロックして他のユーザーが変更できないようにするチェックアウトがない限り、ファイルを変更したり変更をコミットしたりすることはできないということです。ですから、定期的に作業コピーをgitに移行して独立して作業するというあなたのコンセプトは称賛に値しますが、実際にはうまくいくとは思えません。最後にチェックアウト(ファイルをロックする)を実行し、これらの最新のファイルをVSSからgitリポジトリにマージしてから、結果のマージをVSSにチェックインする必要があります。マージするには、それらが完了するのを待つ必要があります。また、最後の読み取り専用コピーを作成してから変更されたファイルが(簡単に)わからないため、すべてのファイルをロックする必要があります。

同僚と一緒に現在行っている作業や作業中のファイルを整理し、意図したとおりにツールを使用することをお勧めします。その重要な部分は、gitを使用して行うように独立して作業するのではなく、チームの開発作業を伝達および整理することです。

7
gbjbaanb

「やめなさい」と答えます。ワークフローはまったく異なります。ワークフローを検討したことがなく、結局自分自身、さらにはチームの悲しみを引き起こしてしまうことになります。他のVCSをより高く評価するために、VSSについて学びましょう。

2
Andy

-UPDATE-

私は このbashスクリプト を使用しており、多くの成功を収めています:)

また、2つのブランチではなく2つのディレクトリをお勧めします。とてもきれいです:)


あなたがあなたのVSS管理者のサポートを持っているなら、あなたは以下のようなものに従うことができます。

それ以外の場合は、独自のブランチと一般的なワークフローにgitを使用し、意図したとおりにVSSを使用できますが、その場合は、私が行った相互運用ソリューションではなく、完全に分離することをお勧めします。私のソリューションは移行ステップとしてより適切ですが、それでも私は注意して使用します。

  • VSSから作業コピーを取得
  • git init
  • 「vss_branch」ブランチを作成する
  • マスターから「dev」ブランチをブランチします
  • 個々の機能/バグのブランチ開発
  • 機能の完了時に、コメントを整理するためにリベースします(いたずらだった場合)
  • 機能/バグの準備ができたら、devにマージします
  • テスト開発者
  • すべての良い開発者がマスターにマージする場合
  • マスターブランチをVSSと同期する
    • vss_branchに切り替えます
    • visual Source Safeから作業用コピーを取得する
    • コメントとして「ss history」を使用してvss_branchにコミットします
    • vss_branchをマスターにプルします
    • テストマスターVSSをマスターと同期
    • 変更した "ss checkout"ファイル(作業コピーを上書きしないでください)
    • 変更した「ss checkin」ファイル(ラベルとしてgitコメントを追加)
  • マスターを開発に引き込む

私はVSSワークフローに固執しようとしましたが、決してプッシュしない個別のVSS gitブランチを使用すると、もう少し堅牢になります。

1
chrispepper1989