Le 09/03/11 12:44, Daniel Shahaf a écrit : > Patrick Mézard wrote on Wed, Mar 09, 2011 at 09:54:13 +0100: >> Le 09/03/11 03:27, Daniel Shahaf a écrit : >>> Patrick Mézard wrote on Tue, Mar 08, 2011 at 22:23:04 +0100: >>>> Hello, >>>> >>>> When replaying a revision merging an svn:externals property from a branch >>>> B to another A, using the svn python binding for svn_ra_replay, I get a >>>> property change event for svn:mergeinfo, but no event for the >>>> svn:externals property being merged into A. Is it expected? >>>> >>>> I hoped the replay API would generate all the events necessary to recreate >>>> the repository being replayed without additional calls. Do I need to >>>> retrieve the merged properties manually? >>>> >>>> This is with macports "svn, version 1.6.13 (r1002816)". A script to >>>> reproduce the input repository is attached. >>> >>> Does svnsync manage to replicate that svn:externals property? >>> >>> If yes, then the replay API does provide it to you. >> >> Yes, svnsync does replicate it. I will look at svnsync implementation >> and try to come back with a minimalist python sample if I cannot get >> it to work. >> > > Personally, I'd start by looking at the declaration of > svn_delta_editor_t (the C interface) --- I'm sure it doesn't have more > than 2-3 functions that take a props_hash/prop_name/etc arguments.
As expected, there was something wrong in my replay editor, it did not copy directory properties upon copies. The merge was actually reported as an "add_directory()" with a copyfrom record. Looking at svnsync.c code actually helped me compare what I was doing with what should be done. Thanks for suggesting the svnsync test. -- Patrick Mézard