git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Robin Rosenberg <robin.rosenberg.lists@dewire.com>
To: "Florian Köberle" <FloriansKarten@web.de>
Cc: git@vger.kernel.org, "Shawn O. Pearce" <spearce@spearce.org>
Subject: Re: [JGIT PATCH v4] Implementation of fnmatch and the ignore rules
Date: Wed, 18 Jun 2008 08:43:43 +0200	[thread overview]
Message-ID: <200806180843.43518.robin.rosenberg.lists@dewire.com> (raw)
In-Reply-To: <4852BCCA.4030404@web.de>

fredagen den 13 juni 2008 20.30.34 skrev Florian Köberle:
> Hi
> 
> Thanks for the suggestions and comments, the new patches are available here:
> http://repo.or.cz/w/egit/florian.git?a=shortlog;h=refs/heads/mailinglist-patches-4
> 
> I will send them as a reply to this email soon.
> 
> 
> The most noticeable change is that I improved the fnmatch functionality.
> 
> All character classes of the type [:class:] work now.
> Other character classes, including the character classes [=class=] and
> [.class.] will cause a InvalidPatternException. The last two aren't
> supported at my bash neighter, but are defined in the POSIX standard.
> 
> Two other implementation differences are:
> 
> The bash shell doesn't support the full range of digits, but my
> implementatiton does. e.g. ۹ (U+06F9 EXTENDED ARABIC-INDIC DIGIT NINE)

Interesting. I'm not sure what to say here. Full compatibility with Git or "better"?

> A pattern like [[:] results in a InvalidPatternException in my
> implementation. The shell has there a strange behavior: if the files "["
> and ":" exists then "ls [[:]" shows only ":".

Having : in  a filename is asking for trouble. I think the parser thinks [[: as 
in [[:alpha:]] and break the parsing somhow. This is possibly even undefined,
so I think you should disallow this. [[\:] works in bash btw.

> The other main change is that I introduced a AbstractTestCase class
> which which offers functionality to create temporary folders.
> RepositoryTestCase extends now from this new class.
> 
> An other patch reducing the duplication between AbstractTestCase and
> RepositoryTestCase class will follow soon, if you like the change.

Not trying to clean up got me into trouble with tons and tons of garbage, that
is why I placed new repos in a directory and try to delete it if possible. That
ofcourse excludes parallell runs. Anyone with a good idea on how to
really handle this?

> I also updated all license statements to the 3-clause BSD.
> 
> Even if you don't like the last change (the AbstractTestCase change) it
> would be cool if you would accept at least some patches.

The patch constituents are somwehat loose. Would this rebase do?

pick e331b13 Added the package fnmatch and two exceptions.
squash 64d8aa2 Added the interface FilePattern.
squash ae7915f Added the class Rule.
squash 48496f5 Added the interface Rules.
squash d7f58cb Added the class FileNamePattern.
squash f757bf1 Added the class FilePathPattern.
pick 39ea57e Added the class IgnoreRuleListFactory.
squash b61bf41 Added a Rules interface implementation and a factory for it.
pick f1c6c47 Added test class OverallIgnoreRulestest.
pick 5321c90 Formatted Constants class.
pick b59c160 Added constant REPOSITORY_DIRECTORY_NAME to Constants class.
squash 435b176 Added path related constants to the Constants class.
pick 76ad8d2 Added the class NoGitRepositoryFoundException.
pick 0164c9e Formatted Repository class.
pick fab1279 Added WorkTree class which can be constructed over Repository.
squash afda1f4 Added findWorkTree method to Repository class.
pick eb61f60 Formatted RepositoryTestCase.
pick 5aca2f0 Added a super class for RepositoryTestCase with a createTemporaryDirectory() method.
pick 9b6a188 Added the class LightFileTreeIterator and a test for it.
squash c9a4795 Added class LightFileTreeIterable.
pick 3b068aa Added the class PathNotInProjectDirectoryException.
pick ef7be7f Added the class AddRuleListFactory.
squash 0b81a9c Added class AddRulesFactory.
pick 9bbb0c3 Added the test class AddCommandIterationTest.

This groups patches into related chunks.

I had to run native2ascii -encoding UTF-8 on FileNameMatcherTest.java to make it pass. The reason
ofcourse is that java doesn't specify a source file encoding. You can tell javac which encoding to use,
but I think we better avoid it. For author names in comments I think we have no choice but to state
that UTF-8 is the one and only encoding for comments and documentation where ascii is unavoidable.

native2ascii does these kinds of things

        public void testWordroupCase1() throws Exception {
-               assertMatch("[[:word:]]", "ö", true, false);
+               assertMatch("[[:word:]]", "\u00f6", true, false);
        }

-- robin

      parent reply	other threads:[~2008-06-18  6:48 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-13 18:30 [JGIT PATCH v4] Implementation of fnmatch and the ignore rules Florian Köberle
2008-06-13 18:34 ` [JGIT PATCH v4 01/24] Added the package fnmatch and two exceptions Florian Koeberle
2008-06-13 18:34 ` [JGIT PATCH v4 02/24] Added the interface FilePattern Florian Koeberle
2008-06-13 18:35 ` [JGIT PATCH v4 03/24] Added the class Rule Florian Koeberle
2008-06-13 18:35 ` [JGIT PATCH v4 04/24] Added the iterface Rules Florian Koeberle
2008-06-13 18:35 ` [JGIT PATCH v4 05/24] Added the class FileNamePattern Florian Koeberle
2008-06-13 18:35 ` [JGIT PATCH v4 06/24] Added the class FilePathPattern Florian Koeberle
2008-06-13 18:35 ` [JGIT PATCH v4 07/24] Added the class IgnoreRuleListFactory Florian Koeberle
2008-06-13 18:35 ` [JGIT PATCH v4 08/24] Added a Rules interface implementation and a factory for it Florian Koeberle
2008-06-13 18:35 ` [JGIT PATCH v4 09/24] Added test class OverallIgnoreRulestest Florian Koeberle
2008-06-13 18:35 ` [JGIT PATCH v4 10/24] Added the class PathNotInProjectDirectoryException Florian Koeberle
2008-06-13 18:35 ` [JGIT PATCH v4 11/24] Added the class AddRuleListFactory Florian Koeberle
2008-06-13 18:35 ` [JGIT PATCH v4 12/24] Formatted Constants class Florian Koeberle
2008-06-13 18:35 ` [JGIT PATCH v4 13/24] Added constant REPOSITORY_DIRECTORY_NAME to " Florian Koeberle
2008-06-13 18:35 ` [JGIT PATCH v4 14/24] Added class AddRulesFactory Florian Koeberle
2008-06-13 18:35 ` [JGIT PATCH v4 15/24] Added the class LightFileTreeIterator and a test for it Florian Koeberle
2008-06-13 18:35 ` [JGIT PATCH v4 16/24] Added class LightFileTreeIterable Florian Koeberle
2008-06-13 18:35 ` [JGIT PATCH v4 17/24] Added path related constants to the Constants class Florian Koeberle
2008-06-13 18:35 ` [JGIT PATCH v4 18/24] Added WorkTree class which can be constructed over Repository Florian Koeberle
2008-06-13 18:35 ` [JGIT PATCH v4 19/24] Added the class NoGitRepositoryFoundException Florian Koeberle
2008-06-13 18:35 ` [JGIT PATCH v4 20/24] Formatted Repository class Florian Koeberle
2008-06-13 18:35 ` [JGIT PATCH v4 21/24] Added findWorkTree method to " Florian Koeberle
2008-06-13 18:35 ` [JGIT PATCH v4 22/24] Formatted RepositoryTestCase Florian Koeberle
2008-06-13 18:35 ` [JGIT PATCH v4 23/24] Added a super class for RepositoryTestCase with a createTemporaryDirectory() method Florian Koeberle
2008-06-13 18:35 ` [JGIT PATCH v4 24/24] Added the test class AddCommandIterationTest Florian Koeberle
2008-06-18  6:43 ` Robin Rosenberg [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200806180843.43518.robin.rosenberg.lists@dewire.com \
    --to=robin.rosenberg.lists@dewire.com \
    --cc=FloriansKarten@web.de \
    --cc=git@vger.kernel.org \
    --cc=spearce@spearce.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).