]> source.dussan.org Git - jgit.git/commit
Add support for built-in smudge filters 83/71983/12
authorChristian Halstrick <christian.halstrick@sap.com>
Tue, 3 May 2016 12:59:57 +0000 (14:59 +0200)
committerMatthias Sohn <matthias.sohn@sap.com>
Tue, 20 Sep 2016 08:02:20 +0000 (10:02 +0200)
commitd97248467a95d26934ddeb8617c3bbf3f673f69d
tree1d14b4dccc659bfd1a8e2245e790da99c4c3a9b2
parentb5bec73715e28cac6a08c98ec1499f02e6095cfc
Add support for built-in smudge filters

JGit supports smudge filters defined in repository configuration. The
filters are implemented as external programs filtering content by
accepting the original content (as seen in git's object database) on
stdin and which emit the filtered content on stdout. This content is
then written to the file in the working tree. To run such a filter JGit
has to start an external process and pump data into/from this process.

This commit adds support for built-in smudge filters which are
implemented in Java and which are executed by jgit's main thread. When a
filter is defined in the configuration as
"jgit://builtin/<filterDriverName>/smudge" then JGit will lookup in a
static map whether a builtin filter is registered under this name. If
found such a filter is called to do the filtering.

The functionality in this commit requires that a program using JGit
explicitly calls the JGit API to register built-in implementations for
specific smudge filters. In follow-up commits configuration parameters
will be added which trigger such registrations.

Change-Id: Ia743aa0dbed795e71e5792f35ae55660e0eb3c24
org.eclipse.jgit.test/tst/org/eclipse/jgit/util/FilterCommandsTest.java
org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties
org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheCheckout.java
org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java