{"thread":{"id":"19022","subject":"[EGit PATCH] IgnoreAction to add to .gitignore files","startedAt":"2009-04-23T11:50:42Z","lastAt":"2009-04-23T23:08:27Z","messageCount":11,"participants":["Alex Blewitt","Francis Galiegue","Robin Rosenberg","Ferry Huberts (Pelagic)"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"112081","messageId":"20090423115042.743E6D9CDC@apple.int.bandlem.com","threadId":"19022","inReplyTo":null,"subject":"[EGit PATCH] IgnoreAction to add to .gitignore files","fromName":"Alex Blewitt","fromEmail":"alex@bandlem.com","sentAt":"2009-04-23T11:50:42Z","receivedAt":"2009-04-23T11:50:42Z","isPatch":true,"sender":{"key":"alex@bandlem.com","avatar":null},"body":"diff --git a/org.spearce.egit.ui/plugin.properties b/org.spearce.egit.ui/plugin.properties\nindex 523a959..be3b40c 100644\n--- a/org.spearce.egit.ui/plugin.properties\n+++ b/org.spearce.egit.ui/plugin.properties\n@@ -52,10 +52,12 @@ FetchAction_tooltip=Fetch from another repository\n PushAction_label=&Push To...\n PushAction_tooltip=Push to another repository\n \n+IgnoreAction_label=Add to .git&ignore...\n+IgnoreAction_tooltip=Ignore the selected resources\n+\n GitActions_label=Git\n GitMenu_label=&Git\n \n-\n Theme_label=Git\n Theme_CommitGraphNormalFont_label=Commit graph normal font\n Theme_CommitGraphNormalFont_description=This font is used to draw the revision history.\ndiff --git a/org.spearce.egit.ui/plugin.xml b/org.spearce.egit.ui/plugin.xml\nindex a94c8bc..1f62292 100644\n--- a/org.spearce.egit.ui/plugin.xml\n+++ b/org.spearce.egit.ui/plugin.xml\n@@ -115,6 +115,12 @@\n \t       menubarPath=\"compareWithMenu/gitCompareWithGroup\"\n \t       tooltip=\"&amp;CompareWithIndexAction_tooltip\">\n \t </action>\n+         <action\n+               class=\"org.spearce.egit.ui.internal.actions.IgnoreAction\"\n+               id=\"org.spearce.egit.ui.internal.actions.IgnoreAction\"\n+               label=\"%IgnoreAction_label\"\n+               menubarPath=\"team.main/group1\"\n+               tooltip=\"%IgnoreAction_tooltip\"/>\n \t  </objectContribution>\n \t  <objectContribution\n          id=\"org.spearce.egit.ui.resetto\"\ndiff --git a/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/IgnoreAction.java b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/IgnoreAction.java\nnew file mode 100644\nindex 0000000..501443e\n--- /dev/null\n+++ b/org.spearce.egit.ui/src/org/spearce/egit/ui/internal/actions/IgnoreAction.java\n@@ -0,0 +1,91 @@\n+/*******************************************************************************\n+ * Copyright (C) 2009, Alex Blewitt <alex.blewitt@gmail.com>\n+ *\n+ * All rights reserved. This program and the accompanying materials\n+ * are made available under the terms of the Eclipse Public License v1.0\n+ * See LICENSE for the full license text, also available.\n+ *******************************************************************************/\n+package org.spearce.egit.ui.internal.actions;\n+\n+import java.io.ByteArrayInputStream;\n+import java.io.ByteArrayOutputStream;\n+\n+import org.eclipse.core.resources.IContainer;\n+import org.eclipse.core.resources.IFile;\n+import org.eclipse.core.resources.IResource;\n+import org.eclipse.core.resources.WorkspaceJob;\n+import org.eclipse.core.runtime.CoreException;\n+import org.eclipse.core.runtime.IProgressMonitor;\n+import org.eclipse.core.runtime.IStatus;\n+import org.eclipse.core.runtime.Path;\n+import org.eclipse.core.runtime.Status;\n+import org.eclipse.jface.action.IAction;\n+import org.eclipse.team.core.Team;\n+import org.spearce.jgit.lib.Constants;\n+\n+/**\n+ * Action for ignoring files via .gitignore\n+ *\n+ */\n+public class IgnoreAction extends RepositoryAction {\n+\t\n+\tprivate static final String GITIGNORE = \".gitignore\";\n+\n+\t@SuppressWarnings(\"restriction\")\n+\t@Override\n+\tpublic void run(IAction action) {\n+\t\tfinal IResource[] resources = getSelectedResources();\n+\t\tif (resources.length == 0)\n+\t\t\treturn;\n+\t\t\n+\t\tWorkspaceJob job = new WorkspaceJob(\"Ignore Git resources\") { //$NON-NLS-1$\n+\t\t\tpublic IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {\n+\t\t\t\tmonitor.beginTask(\"Ignoring Git resources\", resources.length); //$NON-NLS-1$\n+\t\t\t\ttry {\n+\t\t\t\t\tfor (IResource resource : resources) {\n+\t\t\t\t\t\t// TODO This is pretty inefficient; multiple ignores in the same directory cause multiple writes.\n+\t\t\t\t\t\t// NB This does the same thing in DecoratableResourceAdapter, but neither currently consult .gitignore\n+\t\t\t\t\t\tif (!Team.isIgnoredHint(resource)) {\n+\t\t\t\t\t\t\tIContainer container = resource.getParent();\n+\t\t\t\t\t\t\tIFile gitignore = container.getFile(new Path(GITIGNORE));\n+\t\t\t\t\t\t\tString entry = \"/\" + resource.getName() + \"\\n\"; //$NON-NLS-1$  //$NON-NLS-2$\n+\t\t\t\t\t\t\t// TODO What is the character set and new-line convention?\n+\t\t\t\t\t\t\tif(gitignore.exists()) {\n+\t\t\t\t\t\t\t\t// This is ugly. CVS uses an internal representation of the .gitignore to re-write/overwrite each time.\n+\t\t\t\t\t\t\t\tByteArrayOutputStream out = new ByteArrayOutputStream(2048);\n+\t\t\t\t\t\t\t\tout.write(entry.getBytes(Constants.CHARACTER_ENCODING)); // TODO Default encoding?\n+\t\t\t\t\t\t\t\tgitignore.appendContents(new ByteArrayInputStream(out.toByteArray()),true,true,monitor);\n+\t\t\t\t\t\t\t} else {\n+\t\t\t\t\t\t\t\tByteArrayInputStream bais = new ByteArrayInputStream( entry.getBytes(Constants.CHARACTER_ENCODING) ); \n+\t\t\t\t\t\t\t\tgitignore.create( bais,true,monitor);\t\t\t\t\t\n+\t\t\t\t\t\t\t}\n+\t\t\t\t\t\t}\n+\t\t\t\t\t\tmonitor.worked(1);\n+\t\t\t\t\t}\n+\t\t\t\t\tmonitor.done();\n+\t\t\t\t} catch (CoreException e) {\n+\t\t\t\t\tthrow e;\n+\t\t\t\t} catch (Exception e) {\n+\t\t\t\t\tthrow new CoreException(new Status(IStatus.ERROR, \"org.spearce.egit.ui\", \"Unable to ignore resources\", e)); //$NON-NLS-1$\n+\t\t\t\t}\n+\t\t\t\treturn Status.OK_STATUS;\t\t\t\n+\t\t\t}\n+\t\t};\n+\t\tjob.schedule();\t\t\n+\t}\n+\n+\t@SuppressWarnings(\"restriction\")\n+\t@Override\n+\tpublic boolean isEnabled() {\n+\t\tif (getProjectsInRepositoryOfSelectedResources().length == 0)\n+\t\t\treturn false;\n+\n+\t\tIResource[] resources = getSelectedResources();\n+\t\tfor (IResource resource : resources) {\n+\t\t\t// NB This does the same thing in DecoratableResourceAdapter, but neither currently consult .gitignore\n+\t\t\tif (!Team.isIgnoredHint(resource))\n+\t\t\t\treturn true;\n+\t\t}\n+\t\treturn false;\n+\t}\n+}\n"},{"id":"112084","messageId":"200904231427.29832.fge@one2team.com","threadId":"19022","inReplyTo":"20090423115042.743E6D9CDC@apple.int.bandlem.com","subject":"Re: [EGit PATCH] IgnoreAction to add to .gitignore files","fromName":"Francis Galiegue","fromEmail":"fge@one2team.com","sentAt":"2009-04-23T12:27:29Z","receivedAt":"2009-04-23T12:27:29Z","isPatch":true,"sender":{"key":"fge@one2team.com","avatar":null},"body":"Le jeudi 23 avril 2009, Alex Blewitt a écrit :\n> diff --git a/org.spearce.egit.ui/plugin.properties \nb/org.spearce.egit.ui/plugin.properties\n> index 523a959..be3b40c 100644\n> --- a/org.spearce.egit.ui/plugin.properties\n> +++ b/org.spearce.egit.ui/plugin.properties\n> @@ -52,10 +52,12 @@ FetchAction_tooltip=Fetch from another repository\n>  PushAction_label=&Push To...\n>  PushAction_tooltip=Push to another repository\n>  \n> +IgnoreAction_label=Add to .git&ignore...\n> +IgnoreAction_tooltip=Ignore the selected resources\n> +\n>  GitActions_label=Git\n>  GitMenu_label=&Git\n>  \n\nThe label and tooltip are too \"git-specific\", IMHO. I'd rather see:\n\nIgnoreAction_label=&Ignore file(s) for commits...\nIgnoreAction_tooltip=The selected file(s) will not be included by default in \nyour commits. However, you may force the include of these files in a commit \nby explicitly adding them via \"Team->Add\" [or whatever the label is].\n\\n\\nSelecting files to ignore by this mechanism will automatically add one or \nmore files named .gitignore in your next commit.\n\n-- \nFrancis Galiegue\nONE2TEAM\nIngénieur système\nMob : +33 (0) 683 877 875\nTel : +33 (0) 178 945 552\nfge@one2team.com\n40 avenue Raymond Poincaré\n75116 Paris\n"},{"id":"112085","messageId":"0A94BEDB-37A1-44D2-BE54-D05F0C3124EE@bandlem.com","threadId":"19022","inReplyTo":"200904231427.29832.fge@one2team.com","subject":"Re: [EGit PATCH] IgnoreAction to add to .gitignore files","fromName":"Alex Blewitt","fromEmail":"alex@bandlem.com","sentAt":"2009-04-23T12:32:46Z","receivedAt":"2009-04-23T12:32:46Z","isPatch":true,"sender":{"key":"alex@bandlem.com","avatar":null},"body":"Actually, that's pretty much exactly the format that Eclipse users  \nwill be expecting.\n\nCVS: Add to .cvsignore\nSVN: Add to svn:ignore\n\nI suggest that we go with that style of format for the menu items, in  \norder to achieve consistency with the way that the other team  \nproviders work.\n\nNote also that the tooltip is usually much shorter than that ... it's  \nnot a full help description, it explains what it does.\n\nAlex\n\nOn 23 Apr 2009, at 13:27, Francis Galiegue wrote:\n\n> Le jeudi 23 avril 2009, Alex Blewitt a écrit :\n>> diff --git a/org.spearce.egit.ui/plugin.properties\n> b/org.spearce.egit.ui/plugin.properties\n>> index 523a959..be3b40c 100644\n>> --- a/org.spearce.egit.ui/plugin.properties\n>> +++ b/org.spearce.egit.ui/plugin.properties\n>> @@ -52,10 +52,12 @@ FetchAction_tooltip=Fetch from another repository\n>> PushAction_label=&Push To...\n>> PushAction_tooltip=Push to another repository\n>>\n>> +IgnoreAction_label=Add to .git&ignore...\n>> +IgnoreAction_tooltip=Ignore the selected resources\n>> +\n>> GitActions_label=Git\n>> GitMenu_label=&Git\n>>\n>\n> The label and tooltip are too \"git-specific\", IMHO. I'd rather see:\n>\n> IgnoreAction_label=&Ignore file(s) for commits...\n> IgnoreAction_tooltip=The selected file(s) will not be included by  \n> default in\n> your commits. However, you may force the include of these files in a  \n> commit\n> by explicitly adding them via \"Team->Add\" [or whatever the label is].\n> \\n\\nSelecting files to ignore by this mechanism will automatically  \n> add one or\n> more files named .gitignore in your next commit.\n>\n> -- \n> Francis Galiegue\n> ONE2TEAM\n> Ingénieur système\n> Mob : +33 (0) 683 877 875\n> Tel : +33 (0) 178 945 552\n> fge@one2team.com\n> 40 avenue Raymond Poincaré\n> 75116 Paris\n"},{"id":"112117","messageId":"200904232119.36707.robin.rosenberg@dewire.com","threadId":"19022","inReplyTo":"0A94BEDB-37A1-44D2-BE54-D05F0C3124EE@bandlem.com","subject":"Re: [EGit PATCH] IgnoreAction to add to .gitignore files","fromName":"Robin Rosenberg","fromEmail":"robin.rosenberg@dewire.com","sentAt":"2009-04-23T19:19:36Z","receivedAt":"2009-04-23T19:19:36Z","isPatch":true,"sender":{"key":"robin.rosenberg@dewire.com","avatar":"https://avatars.githubusercontent.com/u/46357?v=4"},"body":"torsdag 23 april 2009 14:32:46 skrev Alex Blewitt <alex@bandlem.com>:\n> Actually, that's pretty much exactly the format that Eclipse users  \n> will be expecting.\n> \n> CVS: Add to .cvsignore\n> SVN: Add to svn:ignore\n> \n> I suggest that we go with that style of format for the menu items, in  \n> order to achieve consistency with the way that the other team  \n> providers work.\n\nOuch, top posting....\n\nAnyway, I agree  with Alex. My motivation is that there are more\nthan one way to specify ignore. There's .gitignore, .git/info/excludedes\nand the Team ignore settings themselves. This option specifically\nmesses with .gitignore. \n\n-- robin\n\n> Note also that the tooltip is usually much shorter than that ... it's  \n> not a full help description, it explains what it does.\n> \n> Alex\n> \n> On 23 Apr 2009, at 13:27, Francis Galiegue wrote:\n> \n> > Le jeudi 23 avril 2009, Alex Blewitt a écrit :\n> >> diff --git a/org.spearce.egit.ui/plugin.properties\n> > b/org.spearce.egit.ui/plugin.properties\n> >> index 523a959..be3b40c 100644\n> >> --- a/org.spearce.egit.ui/plugin.properties\n> >> +++ b/org.spearce.egit.ui/plugin.properties\n> >> @@ -52,10 +52,12 @@ FetchAction_tooltip=Fetch from another repository\n> >> PushAction_label=&Push To...\n> >> PushAction_tooltip=Push to another repository\n> >>\n> >> +IgnoreAction_label=Add to .git&ignore...\n> >> +IgnoreAction_tooltip=Ignore the selected resources\n> >> +\n> >> GitActions_label=Git\n> >> GitMenu_label=&Git\n> >>\n> >\n> > The label and tooltip are too \"git-specific\", IMHO. I'd rather see:\n> >\n> > IgnoreAction_label=&Ignore file(s) for commits...\n> > IgnoreAction_tooltip=The selected file(s) will not be included by  \n> > default in\n> > your commits. However, you may force the include of these files in a  \n> > commit\n> > by explicitly adding them via \"Team->Add\" [or whatever the label is].\n> > \\n\\nSelecting files to ignore by this mechanism will automatically  \n> > add one or\n> > more files named .gitignore in your next commit.\n> >\n> > -- \n> > Francis Galiegue\n> > ONE2TEAM\n> > Ingénieur système\n> > Mob : +33 (0) 683 877 875\n> > Tel : +33 (0) 178 945 552\n> > fge@one2team.com\n> > 40 avenue Raymond Poincaré\n> > 75116 Paris\n> \n> \n"},{"id":"112128","messageId":"49F0CCF4.20808@pelagic.nl","threadId":"19022","inReplyTo":"200904232119.36707.robin.rosenberg@dewire.com","subject":"Re: [EGit PATCH] IgnoreAction to add to .gitignore files","fromName":"Ferry Huberts (Pelagic)","fromEmail":"ferry.huberts@pelagic.nl","sentAt":"2009-04-23T20:17:56Z","receivedAt":"2009-04-23T20:17:56Z","isPatch":true,"sender":{"key":"ferry.huberts@pelagic.nl","avatar":"https://gravatar.com/avatar/9f63c0289ad23cbdef0f7609a0af85ff0f4b3babfd066de9ff58f62d48cfd6f2?d=mp&s=160"},"body":"Robin Rosenberg wrote:\n> torsdag 23 april 2009 14:32:46 skrev Alex Blewitt <alex@bandlem.com>:\n>> Actually, that's pretty much exactly the format that Eclipse users  \n>> will be expecting.\n>>\n>> CVS: Add to .cvsignore\n>> SVN: Add to svn:ignore\n>>\n>> I suggest that we go with that style of format for the menu items, in  \n>> order to achieve consistency with the way that the other team  \n>> providers work.\n> \n> Ouch, top posting....\n> \n> Anyway, I agree  with Alex. My motivation is that there are more\n> than one way to specify ignore. There's .gitignore, .git/info/excludedes\n> and the Team ignore settings themselves. This option specifically\n> messes with .gitignore. \n> \nwhile we're on the subject...\nhow about also adding the reverse: when a file is ignored then add it to\nthe .gitignore file for 'un-ignoring' (the '!' pattern)\n"},{"id":"112129","messageId":"200904232226.22240.robin.rosenberg@dewire.com","threadId":"19022","inReplyTo":"49F0CCF4.20808@pelagic.nl","subject":"Re: [EGit PATCH] IgnoreAction to add to .gitignore files","fromName":"Robin Rosenberg","fromEmail":"robin.rosenberg@dewire.com","sentAt":"2009-04-23T20:26:21Z","receivedAt":"2009-04-23T20:26:21Z","isPatch":true,"sender":{"key":"robin.rosenberg@dewire.com","avatar":"https://avatars.githubusercontent.com/u/46357?v=4"},"body":"torsdag 23 april 2009 22:17:56 skrev \"Ferry Huberts (Pelagic)\" <ferry.huberts@pelagic.nl>:\n> while we're on the subject...\n> how about also adding the reverse: when a file is ignored then add it to\n> the .gitignore file for 'un-ignoring' (the '!' pattern)\n\nI'm not convinced each and everything should have a menu entry. Advanced\nuse of .gitignore should have a .gitignore editor. When we have that the\noption could perhaps launch the editor automatically if it recognized no-trivial ignore rules. For trivial cases it would just append to the file.\n\n-- robin\n"},{"id":"112130","messageId":"480EAB35-0032-42E9-B6C1-6712A7EB7ED1@bandlem.com","threadId":"19022","inReplyTo":"200904232226.22240.robin.rosenberg@dewire.com","subject":"Re: [EGit PATCH] IgnoreAction to add to .gitignore files","fromName":"Alex Blewitt","fromEmail":"alex@bandlem.com","sentAt":"2009-04-23T20:36:49Z","receivedAt":"2009-04-23T20:36:49Z","isPatch":true,"sender":{"key":"alex@bandlem.com","avatar":null},"body":"On 23 Apr 2009, at 21:26, Robin Rosenberg wrote:\n\n> torsdag 23 april 2009 22:17:56 skrev \"Ferry Huberts (Pelagic)\" <ferry.huberts@pelagic.nl \n> >:\n>> while we're on the subject...\n>> how about also adding the reverse: when a file is ignored then add  \n>> it to\n>> the .gitignore file for 'un-ignoring' (the '!' pattern)\n>\n> I'm not convinced each and everything should have a menu entry.  \n> Advanced\n> use of .gitignore should have a .gitignore editor. When we have that  \n> the\n> option could perhaps launch the editor automatically if it  \n> recognized no-trivial ignore rules. For trivial cases it would just  \n> append to the file.\n\nI don't know of any other SCM that allows you to un-ignore files in  \nthe way that Git does; my guess is that most people wouldn't miss it  \nif it weren't there. A .gitignore customised editor is probably  \noverkill too - after all, you can just open it up in a text editor and  \nmake changes yourself. I've amended a few .cvsignore files in my time  \nmanually, but I wouldn't want to overcomplicate the menu for that.\n\nAlex\n"},{"id":"112132","messageId":"49F0D42D.3070405@pelagic.nl","threadId":"19022","inReplyTo":"480EAB35-0032-42E9-B6C1-6712A7EB7ED1@bandlem.com","subject":"Re: [EGit PATCH] IgnoreAction to add to .gitignore files","fromName":"Ferry Huberts (Pelagic)","fromEmail":"ferry.huberts@pelagic.nl","sentAt":"2009-04-23T20:48:45Z","receivedAt":"2009-04-23T20:48:45Z","isPatch":true,"sender":{"key":"ferry.huberts@pelagic.nl","avatar":"https://gravatar.com/avatar/9f63c0289ad23cbdef0f7609a0af85ff0f4b3babfd066de9ff58f62d48cfd6f2?d=mp&s=160"},"body":"Alex Blewitt wrote:\n> On 23 Apr 2009, at 21:26, Robin Rosenberg wrote:\n> \n>> torsdag 23 april 2009 22:17:56 skrev \"Ferry Huberts (Pelagic)\"\n>> <ferry.huberts@pelagic.nl>:\n>>> while we're on the subject...\n>>> how about also adding the reverse: when a file is ignored then add it to\n>>> the .gitignore file for 'un-ignoring' (the '!' pattern)\n>>\n>> I'm not convinced each and everything should have a menu entry. Advanced\n>> use of .gitignore should have a .gitignore editor. When we have that the\n>> option could perhaps launch the editor automatically if it recognized\n>> no-trivial ignore rules. For trivial cases it would just append to the\n>> file.\n> \n\nwhich is my idea as well.\n\n> I don't know of any other SCM that allows you to un-ignore files in the\n> way that Git does; my guess is that most people wouldn't miss it if it\n> weren't there. A .gitignore customised editor is probably overkill too -\n> after all, you can just open it up in a text editor and make changes\n> yourself. I've amended a few .cvsignore files in my time manually, but I\n> wouldn't want to overcomplicate the menu for that.\n> \n\njust thought it would be an easy thing to do. still think that.\nan ignore editor can be nice. the gui would be kind of critical in\nmaking it comprehensible though.\n\nbtw. the argument that no other SCM does this is kind of BS. git does\nmany things no other SCM does, and I also know of other SCMs that do\nthings that git can't do...\n"},{"id":"112134","messageId":"200904232309.28680.robin.rosenberg@dewire.com","threadId":"19022","inReplyTo":"480EAB35-0032-42E9-B6C1-6712A7EB7ED1@bandlem.com","subject":"Re: [EGit PATCH] IgnoreAction to add to .gitignore files","fromName":"Robin Rosenberg","fromEmail":"robin.rosenberg@dewire.com","sentAt":"2009-04-23T21:09:28Z","receivedAt":"2009-04-23T21:09:28Z","isPatch":true,"sender":{"key":"robin.rosenberg@dewire.com","avatar":"https://avatars.githubusercontent.com/u/46357?v=4"},"body":"torsdag 23 april 2009 22:36:49 skrev Alex Blewitt <alex@bandlem.com>:\n> I don't know of any other SCM that allows you to un-ignore files in  \n> the way that Git does; my guess is that most people wouldn't miss it  \n> if it weren't there. A .gitignore customised editor is probably  \n> overkill too - after all, you can just open it up in a text editor and  \n> make changes yourself. I've amended a few .cvsignore files in my time  \n> manually, but I wouldn't want to overcomplicate the menu for that.\n\nWhy do we want a plugin for git? We have the command line.\n\n-- robin\n"},{"id":"112135","messageId":"C4403889-A699-4138-9AD5-EE04915657B7@bandlem.com","threadId":"19022","inReplyTo":"200904232309.28680.robin.rosenberg@dewire.com","subject":"Re: [EGit PATCH] IgnoreAction to add to .gitignore files","fromName":"Alex Blewitt","fromEmail":"alex@bandlem.com","sentAt":"2009-04-23T21:12:40Z","receivedAt":"2009-04-23T21:12:40Z","isPatch":true,"sender":{"key":"alex@bandlem.com","avatar":null},"body":"\nOn 23 Apr 2009, at 22:09, Robin Rosenberg wrote:\n\n> torsdag 23 april 2009 22:36:49 skrev Alex Blewitt <alex@bandlem.com>:\n>> I don't know of any other SCM that allows you to un-ignore files in\n>> the way that Git does; my guess is that most people wouldn't miss it\n>> if it weren't there. A .gitignore customised editor is probably\n>> overkill too - after all, you can just open it up in a text editor  \n>> and\n>> make changes yourself. I've amended a few .cvsignore files in my time\n>> manually, but I wouldn't want to overcomplicate the menu for that.\n>\n> Why do we want a plugin for git? We have the command line.\n\nI mean, it's trivial to open up the .gitignore file in Eclipse as a  \ntext file. I was doing that to check the implementation worked whilst  \nadding entries to the .gitignore.\n\nI've seen all manner of bad UIs in applications created because the  \ndeveloper wanted 'total flexibility' and exposed everything via the  \nUI. For something as simple as ignoring a file, which is already a  \npretty standardised operation across SCMs, I don't see any benefit in  \nmaking it more complicated than it needs to be.\n\nAlex\n"},{"id":"112143","messageId":"200904240108.27610.robin.rosenberg@dewire.com","threadId":"19022","inReplyTo":"C4403889-A699-4138-9AD5-EE04915657B7@bandlem.com","subject":"Re: [EGit PATCH] IgnoreAction to add to .gitignore files","fromName":"Robin Rosenberg","fromEmail":"robin.rosenberg@dewire.com","sentAt":"2009-04-23T23:08:27Z","receivedAt":"2009-04-23T23:08:27Z","isPatch":true,"sender":{"key":"robin.rosenberg@dewire.com","avatar":"https://avatars.githubusercontent.com/u/46357?v=4"},"body":"torsdag 23 april 2009 23:12:40 skrev Alex Blewitt <alex@bandlem.com>:\n> \n> On 23 Apr 2009, at 22:09, Robin Rosenberg wrote:\n> \n> > torsdag 23 april 2009 22:36:49 skrev Alex Blewitt <alex@bandlem.com>:\n> >> I don't know of any other SCM that allows you to un-ignore files in\n> >> the way that Git does; my guess is that most people wouldn't miss it\n> >> if it weren't there. A .gitignore customised editor is probably\n> >> overkill too - after all, you can just open it up in a text editor  \n> >> and\n> >> make changes yourself. I've amended a few .cvsignore files in my time\n> >> manually, but I wouldn't want to overcomplicate the menu for that.\n> >\n> > Why do we want a plugin for git? We have the command line.\n> \n> I mean, it's trivial to open up the .gitignore file in Eclipse as a  \n> text file. I was doing that to check the implementation worked whilst  \n> adding entries to the .gitignore.\n> \n> I've seen all manner of bad UIs in applications created because the  \n> developer wanted 'total flexibility' and exposed everything via the  \n> UI. For something as simple as ignoring a file, which is already a  \n> pretty standardised operation across SCMs, I don't see any benefit in  \n> making it more complicated than it needs to be.\n\nA bad GUI is worse than no GUI, so we don't want that. We're not that\ndesperate.\n\n-- robin\n"}]}