> -----Original Message----- > From: Branko Čibej [mailto:br...@wandisco.com] > Sent: woensdag 6 mei 2015 14:49 > To: users@subversion.apache.org > Subject: Re: API accessing property diff of svn:mergeinfo > > On 06.05.2015 14:20, Bernhard Haumacher wrote: > > Hi Branko, > > > >> On 06.05.2015 08:24, Bernhard Haumacher wrote: > >> > > >> > ... I'd > >> > like to analyze the diff of the svn:mergeinfo property (what other > >> > revisions were merged into some branch in a commit). ... > >> > > >> > >> 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. > >> > > > > I tried out your suggestion, but it seems that it cannot be used for > > my purpose: I'm not interested in the merged revisions limited to > > those revisions that were merged from a specific merge source (for > > using the getMergeinfoLog() API, I do not have the `mergeSourceUrl` > > info): > > > > {{{ > > getMergeinfoLog(Mergeinfo.LogKind kind, String pathOrUrl, > > Revision pegRevision, String mergeSourceUrl, > > Revision srcPegRevision, > > Revision srcStartRevision, Revision > > srcEndRevision, > > boolean discoverChangedPaths, > > Depth depth, Set<String> revProps, > > LogMessageCallback callback) > > }}} > > > > What I'm interested in is the combination of all merge sources plus > > merged revisions that were merged within a single commit. At the > > command line, this information can be retrieved with > > > > {{{ > > svn diff --depth empty -c<rev> <url of branch> > > }}} > > > > resulting in e.g.: > > > > {{{ > > Eigenschaftsänderungen: . > > > ________________________________________________________________ > ___ > > Modified: svn:mergeinfo > > Zusammengeführt /trunk:r161790 > > Zusammengeführt /branches/x:r160492 > > Zusammengeführt /branches/y:r185821 > > }}} > > > > Unfortunately, I cannot access this information using javahl in a > > structured way?! > > You can call ISVNClient.getMergeinfo twice with the same path and > different revisions and calculate the difference of the returned > Mergeinfo structures. That's just a hash+list intersection.
In AnkhSVN I usually skip the diff apis and just obtain the whole files ('svn cat FILE' 'svn cat FILE@BASE') and properties ('svn proplist FILE' 'svn proplist FILE@BASE) and do the calculations myself. That way I also have access to what is not changed. Specifically for svn:mergeinfo you might be better of using the dedicated apis (which in many cases contact the server), but for all other properties I would guess just obtaining the values and explicitly apply further processing yourself is most likely far more future proof. Bert