17

私は、すべての開発者が自分のマシン上でC:\project\.git\rr-cacheから共有フォルダ\\server\rr-cacheにシンボリックリンクを設定することを人々に勧めているのを見てきました。再キャッシュを共有する

しかし、可能であれば、それをgitリポジトリ自体に含めることでフォルダを共有する方が便利かもしれません。私は人々がこの解決策に言及しているのを見ましたが、実際にそれを行う方法ではありません。

アイデア?

+0

rerereキャッシュを相互に共有する必要がある場合、リベースされたブランチをあまりにも頻繁にプッシュすることがあります。私はこの問題の標準的な解決策は、キャッシュを共有するのではなく、見えるものを再構築することではないと思います。そうすれば、彼らはおそらく彼らが何をしているか知っているので、彼ら自身の私設支店から自分たちのリベース問題を解決することができます。 –

+1

rr-cacheはリポジトリにすでに含まれているため、リポジトリに含めることはできません。あなたがそれを歴史の一部にすることができるかどうか尋ねた場合:はい、それは良いアイデアのようには見えません(変化する歴史のために変わります、コンテンツの変更、Gitの追跡、新しいリポジトリごとにトラッキングされたrr-cacheを設定する) – fork0

+0

が本当ですが、スクリプトを使って設定した場合は、行こうと思っています。 –

答えて

14

専用ブランチを介して共有することができます。そのブランチに矛盾があった場合には停止し、2つの異なる方法で同じ矛盾を解決しようと試みたことを意味するので、解決したいと考えています。言うまでもなく、それはルールの例外になります。

この質問の他の人には、Googleの「機能ごとの支店」を参照して、これが便利な場所を確認してください。

フックは、共通のrrキャッシュブランチの同期を自動化できます。

自動化する必要があります。 rereresharingは、マージするブランチの一例です。rr-cacheは、解像度を格納するブランチです。これらのすべての手順は問題なく動作しました:

git checkout --orphan rereresharing start-sprint-1 
git --git-dir=.git --work-tree=.git/rr-cache checkout -b rr-cache 
git --git-dir=.git --work-tree=.git/rr-cache add -A 
git --git-dir=.git --work-tree=.git/rr-cache commit -m "initial cache" 
git clean -xdf 
git checkout rereresharing 
git merge --no-ff FTR-1 
git merge --no-ff FTR-2 
vim opinion.txt # resolve conflict 
git add -A 
git commit 
git checkout rr-cache 
git --git-dir=.git --work-tree=.git/rr-cache add -A 
git --git-dir=.git --work-tree=.git/rr-cache commit -m "resolution" 
git remote add origin ../bpf-central 
git push origin rereresharing rr-cache 
cd - # assumes you were previously in the other local repo 
git remote add origin ../bpf-central 
git fetch 
git branch rr-cache origin/rr-cache 
ls .git/rr-cache 
git --git-dir=.git --work-tree=.git/rr-cache checkout rr-cache -- . 
ls .git/rr-cache 

これで、同じマージを行う準備が整いました。競合が解決されます。

+3

rr-cacheのために切断されたブランチ、つまり 'checkout --orphan rr-cache'を作成することができます。見栄えが良い – kan

+0

恐ろしい!私は答えを更新します。 –

+0

-bと--orphanはgitの最新バージョンでは互換性がありません。 –

4

共有する代わりにrr-cache別のオプションは、rerere-train.shを使用して既存のGit履歴から競合の解決を知ることでしょう。

+0

これはいつ実行されますか?マージ競合が発生するたびに? –

+1

あなたが紛争を解決した他の誰かが、その解決をローカルで再利用できるようにするたびに、それを実行する必要があります。 – sschuberth