私は自分のバージョン管理システムをどのように動作させたいかについてこの考えを持っています。その考えを捨てて、これを達成するための既存の方法を誰かが知っているかどうかを確認したいと思いました。私はマーキュリアルが好きなので、この質問の対象にしていますが、これを実現できる他のソフトウェアについて喜んで聞いています。
では、問題に進みましょう。研究者として、私はさまざまなものをバージョンアップしたいと考えています。これには、コード (小さなスクリプトまたは大きなアプリケーション)、原稿、データ、コースワークなどがあります。
- 「hg log」で現在のプロジェクトに関連するものだけを表示したい
- コードを別の場所に公開し、履歴を保持したい場合があります。
- それはちょうど間違っていると感じます...
したがって、私が実装している現在のアイデアは、中央サーバー上にさまざまなリポジトリを含むディレクトリ階層を持つことです。このようなもの (hg repo としてマークされたもののみがリポジトリであり、それ以外はすべて標準のファイルシステム ディレクトリです):
-- ~/hgrepo/
-- Projects/
-- Project 1 (hg repo)
-- Project 2 (hg repo)
-- Code
-- MyCoolApplication
-- MyAppSource (hg repo)
-- SomeExternalPatchedLib (hg repo)
-- CodeProject 1 (hg repo)
これで、何かをハックしてhg clone ssh://my.university.server.com/hgrepo/Code/CodeSample1
.hg/hgrc を編集し、サーバーへのデフォルト パスを変更できるので、これで問題なく動作します。しかし、それは少し面倒です。
私が望むのは、私を可能にする拡張機能を持つことです
hg repo ls Code/
Code/の下のレベルを表示するように、リポジトリを一覧表示します- 上記の単純なパスを使用してクローンを作成します (面倒な ssh:// やサーバーのホスト名などをスキップします)
- ローカル リポジトリをリモート リポジトリに公開します (つまり、クローンを作成し、エラーを処理しながらデフォルト パスを変更します)。
基本的には、プライベートで自己ホスト型の bitbucket/github のようなものだと思います。似たようなシステムを知っている人はいますか?
ファイル サーバーには SSH 経由でしかアクセスできないため、ホスト マシンでサーバー アプリケーションを実行できません。しかし、ソフトウェアが十分に優れていれば、それを変更できるかもしれないので、それを必要とするシステムについても聞いてうれしいです:)