Hi Eric,

One corner case I ran across when building from a reposurgeon-generated tree is 
that .gitignore files do not seem to be generated when a directory is created 
at the same time as its svn:ignore property is set.

In NUT, this manifests itself in r3109: 
http://trac.networkupstools.org/projects/nut/changeset/3109

Trac doesn't show it there, but scripts/avahi was created in that commit, and 
it had svn:ignore set:

http://trac.networkupstools.org/projects/nut/browser/trunk/scripts/avahi?rev=3109

With 'verbose 4', reposurgeon sees this in the import stream:

...
reposurgeon: node list parsing, line 11292079: 'Node-path: 
trunk/scripts/avahi\n'
reposurgeon: node list parsing, line 11292080: 'Node-kind: dir\n'
reposurgeon: node list parsing, line 11292081: 'Node-action: add\n'
reposurgeon: node list parsing, line 11292082: 'Prop-content-length: 44\n'
reposurgeon: node list parsing, line 11292083: 'Content-length: 44\n'
reposurgeon: node list parsing, line 11292084: '\n'
reposurgeon: readprops, line 11292085: 'K 10\n'
reposurgeon: readprops: on trunk/scripts/avahi, setting svn:ignore = 
'nut.service\n'
reposurgeon: readprops, line 11292090: 'PROPS-END\n'
...

But the .gitignore is not generated:

...
reposurgeon: Revision 3109:
reposurgeon: <NodeAction: r3109 change file 'trunk/configure.in'>
reposurgeon: <NodeAction: r3109 change file 'trunk/scripts/Makefile.am'>
reposurgeon: <NodeAction: r3109 add dir 'trunk/scripts/avahi' 
properties=[('svn:ignore', 'nut.service\n')]>
reposurgeon: <NodeAction: r3109 add file 'trunk/scripts/avahi/nut.service.in' 
properties=>
reposurgeon: -> find_node(3108, trunk/configure.in)
reposurgeon: find_node(3108, trunk/configure.in) -> <NodeAction: r3022 change 
file 'trunk/configure.in'>
reposurgeon: -> find_node(3108, trunk/scripts/Makefile.am)
reposurgeon: find_node(3108, trunk/scripts/Makefile.am) -> <NodeAction: r2836 
change file 'trunk/scripts/Makefile.am'>
reposurgeon: r3109: 3 actions
reposurgeon: r3109 gets mark :11867
...

The .gitignore creation only seems to happen on line 2226 of reposurgeon (as of 
a2ae20b - master on 2012-04-02), where it checks for a node.action of SD_CHANGE.

There's some logic in the SD_ADD case that I don't completely grok at this late 
hour, so I haven't attempted a patch yet. If you would like me to take a stab 
at it, let me know how what would be least intrusive. I'm thinking that the 
property stuff moves up to where SD_ADD is, in a check for SD_ADD || SD_CHANGE, 
then move the svn_nobranch logic into an 'if' statement one level down from 
that.

Here's what I'm using:

https://gitorious.org/~clepple/reposurgeon/clepple-nut-conversion/commits/cfl-mods
 (mostly debugging changes to the configuration, but some new items in nut.box)

https://gitorious.org/~clepple/reposurgeon/clepple-reposurgeon (tried with both 
your latest pushed master branch as of this evening, and my nut-conversion 
branch, which was based off of an older commit.)

-- 
Charles Lepple
clepple@gmail




_______________________________________________
Nut-upsdev mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/nut-upsdev

Reply via email to