プロジェクトとエディターのソース管理のその他のガイドライン
ソース管理をサポートするためにプロジェクトとエディターで従う必要がある多くのガイドラインがあります。
ガイドライン
プロジェクトまたはエディターでは、ソース管理をサポートするために次のことも行う必要があります。
Area | プロジェクト | [エディター] | 詳細 |
---|---|---|---|
ファイルのプライベート コピー | x | 環境では、ファイルのプライベート コピーがサポートされます。 つまり、プロジェクトに登録されている各ユーザーは、そのプロジェクト内のファイルの独自のプライベート コピーを持っています。 | |
ANSI/Unicode の永続性 | x | x | 永続するコードを記述する場合は、現在、ほとんどのソース管理プログラムで Unicode がサポートされないため、ANSI 形式でファイルを保持します。 |
ファイルの列挙 | x | プロジェクトには、その中にあるすべてのファイルの特定のリストが含まれている必要があり、IVsSccProject2 または GetProperty (VSH_PROPID_First_Child/Next_Sibling) を使用してファイルのリストを列挙できる必要があります。 また、プロジェクトでは、GetMkDocument の実装によって項目名が公開され、IsDocumentInProject の実装によって名前参照 (特殊ファイルを含む) がサポートされる必要があります。 | |
テキスト形式 | x | x | 可能な場合、異なるバージョンのマージをサポートするために、ファイルはテキスト形式である必要があります。 テキスト形式ではないファイルは、後で他のバージョンのファイルとマージできません。 推奨されるテキスト形式は XML です。 |
参照ベース | x | 参照ベースのプロジェクトは、ソース管理で容易にサポートされます。 ただし、ファイルがディスク上に存在するかどうかに関係なく、プロジェクトで要求に応じてファイルのリストを生成できる限り、ディレクトリベースのプロジェクトもソース管理でサポートされます。 ソース管理からプロジェクトを開くと、それに含まれるファイルの前にプロジェクト ファイルがまずダウンロードされます。 | |
オブジェクトとプロパティを予測可能な順序で保持する | x | x | マージを容易にするために、ファイルをアルファベット順などの予測可能な順序で保持します。 |
再読み込み | x | x | ディスク上でファイルが変更された場合、エディターで再読み込みできる必要があります。 ソース管理に参加している場合、環境では ReloadDocData の実装を呼び出すことによって、データが再読み込みされます。 再読み込みが最も困難なケースは、IVsQueryEditQuerySave::QueryEditFiles を呼び出して情報を処理しているときにチェックアウトが発生した場合です。 ただし、この状況で再読み込みのコードを実行できる必要があります。 環境では、プロジェクト ファイルが自動的に再読み込みされます。 ただし、入れ子になったプロジェクト ファイルの再読み込みをサポートするために、入れ子になった階層がある場合は、プロジェクトで IVsPersistHierarchyItem2 を実装する必要があります。 |