On Thu, Sep 10, 2015 at 4:02 PM, Olaf Dabrunz <[email protected]> wrote:

> On 10-Sep-15, Manuel Ortega wrote:
> > In the case of mercurial, there's no need to make branches or merges in
> order to solve this problem.  Just add the following to
> > $REPO/.hg/hgrc:
> >
> > [hooks]
> > pre-status = hg revert runtime/doc/tags
> > pre-update = hg revert runtime/doc/tags
> > pre-pull   = hg revert runtime/doc/tags
> >
> > I'm about to investigate whether (a) something similar can done in git,
> and (b) if the answer is yes, whether Bram can set it in
> > the GitHub repo and have it percolate down to all of us.
>
> I don't think that git has *hooks* for 'git pull' or 'git merge' that
> can affect the outcome of the merge (githooks(1)).  Also, hooks live
> below .git/hooks/, which is not transmitted between repositories.
>
> But git offers custom merge drivers for this purpose.
>
>
> http://stackoverflow.com/questions/27920526/merge-strategy-in-gitattributes-not-working
>
> The merge driver itself needs to be defined in the local repository and
> lives in .git/config or ~/.gitconfig (when "--global" is used):
>
>     git config [--global] merge.theirs.name "always copy their version
> during merge"
>     git config [--global] merge.theirs.driver "cp -f %B %A"
>
> The driver can then be used for merging "runtime/doc/tags".  As the
> driver is only defined for the local repository, this setting should
> also be done locally:
>
>     echo "runtime/doc/tags merge=theirs" >> $(git rev-parse
> --show-toplevel)/.git/info/attributes
>
> That should be all, but I did not test it.
>
> Note that the above line can alternatively be added to .gitattributes,
> which is transferred to other repositories.  But the definition of a
> merge driver is local to each repository, so this is not useful and
> leads to merge errors when the driver is not defined.
>
> Merge drivers and hook scripts are not transferred between repositories
> to prevent users from pushing malicious scripts to all other users.


That's cool, but I don't want to modify a merge.  In fact, I don't want to
have to merge at all; I don't make local commits that differ from what Bram
does, so `git pull` should suffice.  I want to do what I did in hg, which
is to automatically revert any uncommitted changes to runtime/doc/tags
BEFORE any pulling or fetching takes place.

-Manny

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui