You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Bernhard Haumacher <ha...@haumacher.de> on 2015/05/06 08:24:01 UTC
API accessing property diff of svn:mergeinfo
Hi,
I'm accessing a SVN repository from Java code using javahl. Now, I'd
like to analyze the diff of the svn:mergeinfo property (what other
revisions were merged into some branch in a commit). The only way I
found doing that is using the API
{{{
org.apache.subversion.javahl.ISVNClient.diff(String target, Revision
pegRevision, Revision startRevision,
Revision endRevision, String relativeToDir,
OutputStream outStream,
Depth depth, Collection<String> changelists,
boolean ignoreAncestry, boolean noDiffDeleted, boolean force,
boolean copiesAsAdds, boolean ignoreProps, boolean propsOnly)
}}}
giving parameters depth=empty and propsOnly=true. When calling that
method, I get a internationalized textual diff description forwarded to
the given OutputStream with the following content:
{{{
Index: .
===================================================================
--- . (Revision 7)
+++ . (Revision 8)
Eigenschaftsänderungen: .
___________________________________________________________________
Added: svn:mergeinfo
Zusammengeführt /branches/branch1/module1:r7
}}}
While this might be OK for a human reader, it seems not to be the
normative way to access this information from progam code. Is there a
better API that gives me the same information in a structured way, e.g.
as map from path to revision range?
Thanks and best regards,
Bernhard Haumacher
Re: API accessing property diff of svn:mergeinfo
Posted by Branko Čibej <br...@wandisco.com>.
On 06.05.2015 08:24, Bernhard Haumacher wrote:
> Hi,
>
> I'm accessing a SVN repository from Java code using javahl. Now, I'd
> like to analyze the diff of the svn:mergeinfo property (what other
> revisions were merged into some branch in a commit). The only way I
> found doing that is using the API
>
> {{{
> org.apache.subversion.javahl.ISVNClient.diff(String target, Revision
> pegRevision, Revision startRevision,
> Revision endRevision, String relativeToDir,
> OutputStream outStream,
> Depth depth, Collection<String> changelists,
> boolean ignoreAncestry, boolean noDiffDeleted, boolean
> force,
> boolean copiesAsAdds, boolean ignoreProps, boolean
> propsOnly)
> }}}
>
> giving parameters depth=empty and propsOnly=true. When calling that
> method, I get a internationalized textual diff description forwarded
> to the given OutputStream with the following content:
>
> {{{
> Index: .
> ===================================================================
> --- . (Revision 7)
> +++ . (Revision 8)
>
> Eigenschaftsänderungen: .
> ___________________________________________________________________
> Added: svn:mergeinfo
> Zusammengeführt /branches/branch1/module1:r7
> }}}
>
> While this might be OK for a human reader, it seems not to be the
> normative way to access this information from progam code. Is there a
> better API that gives me the same information in a structured way,
> e.g. as map from path to revision range?
ISVNClient.getMergeinfoLog should give you that information.
The upcoming 1.9 release will have http://s.apache.org/pVj which allows
you to limit the revision range.
-- Brane