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