$ HOMEをシンボリックリンクポイントファイルの代わりにgitに入れるのに落とし穴がありますか?

$ HOMEをシンボリックリンクポイントファイルの代わりにgitに入れるのに落とし穴がありますか?

$HOME私は長年私のカタログ全体をSubversionとして確認してきました。これには、私のすべてのドットファイルとアプリケーション設定ファイル、多くのスクリプト、ツールとハッキング、私のお気に入りのデフォルトのホームディレクトリ構造、かなり多くの奇妙なプロジェクト、そしてランダムなデータストアが含まれます。これは良いことです。それが続く間。

しかし、状況が歩くことができなくなりました。基本的な検査は何十ものシステムで同じですが、これらすべてが私のすべてのコンピュータで動作するわけではありません。他のディストリビューションでもうまく機能しません。

私は家を掃除しています。データが属する場所を分離し、一部のスクリプトを別々のプロジェクトに分割し、自動化する必要がある項目で壊れたリンクを修正するなどの作業を行います。

subversion私の意図はトップレベルのgitチェックアウトを置き換えることですが、$HOMEすべてのシステムで使用したいものに縮小したいと思います。つまり、ドットファイル、いくつかのディレクトリ、およびいくつかのデフォルトのカスタムスクリプトを意味します。

オンラインで読むと、多くの人がこれを行うためにシンボリックリンク方法を使用しているようです。つまり、サブディレクトリに複製し、リポジトリ$HOMEからシンボリックリンクを作成します。$HOME私は10年以上にわたって完全なバージョン管理を受けてきましたが、このアプローチのアイデアも気に入らず、なぜ人々が直接チェックアウトアプローチにそのように反対するようなのか理解できません。git最高の支払いのために知っておくべき特定の問題はありますか$HOME

PS:良いコーディング練習の一環として、ルートチェックアウトをGitHubに公開する計画もあります。何も考えずに共有しなければならないファイルに、セキュリティに敏感な情報をどれだけ収集できるかを恐れています。 WiFiパスワード、暗号化されていないRSA鍵などこんな!

ベストアンサー1

はいgit、とは関係のないホームディレクトリ管理を考慮すると、少なくとも1つの主な落とし穴がありますsubversion

基本的に、Gitは貪欲で再帰的です。

Subversionは知らないことは無実に無視し、不明な(または他のリポジトリに属する​​)フォルダに到達すると、チェックアウトから上下にフォルダの処理を停止します。一方、Gitはすべてのサブディレクトリで繰り返されるため、ネームスペースの問題によりネストされたチェックアウトが非常に複雑になります。ホームディレクトリは他のさまざまなGitリポジトリをチェックして作業する場所である可能性が高いので、ホームディレクトリをgitに入れると人生が混乱することはほとんど確実です。

これは、人々がドットファイルを別のフォルダとしてチェックし、そのファイルにシンボリックリンクをリンクする主な理由であることがわかりました。自宅で転倒するかどうかを確認することは純粋に好みの問題ですが、$HOMEgitを使用している場合は必須です。

しかし、、代替ソリューションがあります。 Gitでは、すべてのストレージシステムが、チェックアウト作業ディレクトリから物理的に分離できる代替フォルダに隠されている「偽のルート」という機能を許可します。その結果、gitツールキットは混同されません。リポジトリも表示できず、作業コピーのみを表示できます。いくつかの環境変数を設定すると、ホームディレクトリを管理するときに必要な項目を見つける場所をgitに尋ねるように求められます。環境変数が設定されていないと、誰も賢明ではなく、あなたの家は古典的なファイル自体のように見えます。

この技術をよりスムーズにするためのいくつかの素晴らしいツールがあります。これvcs-homeメーリングリスト事実上の出発点になるように見える情報ページは、方法と人々の経験を簡単にまとめます。その過程で、次のようないくつかの素晴らしいデバイスがあります。VCSH神社。ホームディレクトリをgitに直接保持するには、vcshはほとんど必須のツールです。ホームディレクトリをバックグラウンドで複数のリポジトリに分割する場合は、すばやく簡単に複数のリポジトリを組み合わせて一度に管理しますvcshmr

おすすめ記事