[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [egit-dev] Support for logical model integration
|
Hi Travis,
In the currently released versions of EGit/JGit, the logical model
support is available for comparisons, synchronizations and "replace
with" purposes.
Merge, cherry-picks, reverts, rebases, ... are still only doing
"file-by-file" merging and are thus oblivious of model providers
that also provide their own mergers for the logical models they
handle. Same goes with the merge tool.
Full support for the model provider's mergers is added through a
series of patches currently awaiting for reviews on both projects'
gerrits. Though this integration is fully tested on our side, we did
this on a commercial provider we cannot disclose. EMF Compare aims
at providing the same level of support... but it is still a work in
progress. Do note that all of my EGit patches depend on the
inclusion of the JGit ones, which explains why the hudson builds
that were launched on them mostly fail.
If you wish to try out this support, please take a look at the
following patches (even better if you can test your own merge
provider with those patches applied and provide us with your
feedback) :
JGit :
- Allow callers to define and use a custom strategy for all
merges (cherry-pick, revert, stash, rebase, ...). This allows us
to "hijack" the default strategies "file-by-file" behavior.
- Allow clients to sub-class the default "resolve" merge
strategy. Solves the same issue : we need to handle more than
one file at a time, yet still fall back to default when there
are no model mergers. Sub-classing is the best mean to that end.
EGit :
- Prevent non-blocking exception from being propagated as a
blocker from the auto-staging hook of deletions. Model mergers
will delete files outside of EGit's control, at a point where
the index is locked. The auto-staging hook tries to lock said
index, fails... and currently propagates that otherwise
non-blocking failure as a show-stopper that fails the merge as a
whole.
- Introduce internal API to integrate EGit with Team merging.
This introduces all of the necessary Subscriber and
ResourceVariant implementations to create the MergeContext
required by the model mergers.
- Implement an Eclipse-specific workspace aware merging strategy
for all of EGit operations involving merges (cherry-pick,
rebase, ...). This one is the 'main' one that actually
implements the changes in EGit to call the model mergers.
- Do not ignore model-specific comparators when using the merge
tool. This also adds the support for your own mergers when
calling EGit's merge tool ("Team > merge tool" action on
files that were marked as conflicting by the merge operations).
Without this, even though your model mergers will mark files as
conflicting, the merge tool would revert to file-by-file
"textual" merging.
Feel free to tell us if there are still things missing from there
for your own merge provider.
Regards,
Laurent Goubet
Obeo
On 25/03/2014 09:45, Travis London
wrote:
Hello,
I was wondering what the current status is
on logical model integration support?
I have a compare/merge provider that I
would like to add a logical model provider for, and need to
support eGit.
Thanks in advance,
Travis London
_______________________________________________
egit-dev mailing list
egit-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/egit-dev
|
begin:vcard
fn:Laurent Goubet
n:Goubet;Laurent
org:<a href="http://www.obeo.fr">Obeo</a>
email;internet:laurent.goubet@xxxxxxx
url:http://www.obeo.fr
version:2.1
end:vcard