Subject: Re: jgit and ignore

From: Tor Arne Vestbø <[email-masked]>
Date: Sun, 01 Mar 2009 15:58:59 +0100

Ferry Huberts (Pelagic) wrote:
> Tor Arne Vestbø wrote:
>> In my opinion, EGit should default to using Eclipse's built in ignores,
>> but then detect the presence of a global core.excludesfile, in which
>> case it would notify the user ("I see you have a core.excludesfile") and
>> let the user switch to using that one instead.

[snip]

First of all, I do appreciate you working on the ignore feature :)

> I do not agree with your propasal however.
> We then would have different behaviour between how 'git' behaves within
> Eclipse (by means of the plugin) and how 'git' behaves within the
> command line. That alone can cause much more confusion.

I see what you mean, and I agree that in general the command line git
porcelain and the Eclipse git porcelain should work in similar ways.

But, with that said, I think of EGit as a standalone Eclipse-plugin
implementation of the git porcelain -- not just a wrapper around the
command line porcelain.

To me that means that EGit should focus just as much on integrating with
Eclipse properly as it does on keeping command line porcelain
interoperability.

The core.excludesfile is one such case, and I think my proposal is a
good compromise.

> Your proposal can also be implemented differently by (for example)
> building a UI that allows the user to edit the global ignore file.

That would be going out of scope of Eclipse as a framework, and also
does not solve the problem for those users who have a list of global
team ignores, and expect the Git plugin to just work with those ignores.

> The Eclipse global team ignores simply are too broad: think of the
> situation where I also have non-git project (like svn) in my workspace.

Not sure I understand? Isn't that exactly why you would have Eclipse's
global ignores specified in one place -- so that they could be shared
between version control systems instead of replicated in each repo?

Let' say you have a CVS project, a SVN project, and a Git project in
your workspace. The CVS and SVN projects would pick up ".bak" as an
ignore pattern from your team ignores, but the Git project would not.

To make the Git project pick it up, you would have to either add it
(repatedly for more than one project) to the .gitignore of that project,
or open an editor outside of Eclipse to edit your ~/.gitconfig.

Either ways seem redundant and awkward to me.

Tor Arne