私の雇用主はまだVisualSourceSafe6を使用しています。すべてがVSSのメインプロジェクトディレクトリにチェックインされます。それらはVSSで分岐を使用していません。チェックインはQAにリリースする準備ができているはずであり、ビルドを中断してはなりません(強制されません)。
Gitをローカルリポジトリとして使用して、機能(ブランチ)ごとの変更を追跡し、VSSにコミットする前に変更の履歴を取得できるようにします。一部の変更は、VSSにチェックインできるようになるまでに3〜4日以上かかる可能性があるため、これが必要です。
注:いくつかのgitの概念についての私の理解は非常に新しく、オフベースである可能性があります。
これらの同様の質問を読んだ後:
以下は私がやろうと思っていたことです:
C:\ VSS\ProjectAここでVSS固有のアクションget-latest-version、chechout、checkinなどを実行します。他の開発者は引き続きVSSを使用し、一部の開発者は私のようなVSSでgitを使用する可能性があるため、ソリューション/プロジェクトファイルにはVSSへのバインドがあります。
C:\ MY\ProjectAここで、開発作業を行い、gitワークフローを使用します。
私がしたフォルダーを設定するには:
C:\VSS\ProjectA
に最新バージョンを取得しますC:\VSS\ProjectA>git init
とC:\VSS\ProjectA>git add .
、これが私のマスターブランチになりますgit clone C:\VSS\ProjectA C:\MY\ProjectA
、これが私の開発クローンになりますQ:ソリューション/プロジェクトファイルにVSSバインディングがある場合、VisualStudioはgitクローンフォルダーC:\MY\ProjectA
からでもVSSに接続しようとします。だから私はクローンの後にVSSバインディングを削除する必要がありますよね?
機能に取り組むとき、私はする必要があります:
C:\VSS\ProjectA
に最新バージョンを取得しますC:\MY\ProjectA>git fetch
およびC:\MY\ProjectA>git checkout
、Q:正しいですか?C:\MY\ProjectA>git Push
、Q:正しいですか?C:\VSS\ProjectA>git checkout
、Q:正しいですか?C:\VSS\ProjectA>git commit
、Q:正しいですか?[〜#〜] update [〜#〜]git for windows(VisualStudio2015)は、ベアでないローカルリポジトリへのプッシュをまだサポートしていないようです。回避策はありますか?
参考までに、VSS2005を使用した私の方法。
プロジェクト1日目
いつでもN、
作品を提出するには
によってパッチを生成します
git diff lastSubmitVerHash head --name-only | Zip ../projPatch.Zip -@
パッチを抽出して上書きすることにより、projVssにパッチを適用します
VSSはチェックイン時にファイルを自動的に追加しないため、によって新しく追加されたファイルのパッチを生成します。
git diff lastSubmitVerHash head --name-only -diff-filter=A | Zip ../projPatchNew2Vss.Zip -@
同様に、VSSはチェックイン時にファイルを自動的に削除しないため、削除するファイルをリストアップします。
git diff lastSubmitVerHash head --name-only -diff-filter=D
VSSで再帰的にチェックインします。
N + 1日目に、5〜16を繰り返し、8〜14をすばやく実行して、短いチェックアウト(ロック)時間を有効にすることができます。
問題
更新する必要があるファイルについては、VSSチェックアウトの警告に注意を払う必要があります。他の人がチェックアウトしている場合でも、チームメートにリリースを依頼する必要があります。