In further investigation, it seems that the extra merge in the block at [2] is not a necessary part of this, which simplifies things a bit. Just adding 2 Nada revs has the same effect. Here's the revised full log, when using mk_dir=false (and so having a /foo file rather than a /foo/ dir):
7 Matthew Fuller 2012-11-05
Nada
6 Matthew Fuller 2012-11-05 [merge]
Merge C:1
1.2.5 Matthew Fuller 2012-11-05 Nada
1.2.4 Matthew Fuller 2012-11-05 Nada
1.2.3 Matthew Fuller 2012-11-05 Nada
1.2.2 Matthew Fuller 2012-11-05 [merge] Merge A:1
A foo
1.2.1 Matthew Fuller 2012-11-05 Nada
5 Matthew Fuller 2012-11-05
Nada
4 Matthew Fuller 2012-11-05
Nada
3 Matthew Fuller 2012-11-05
Edit file
M foo
2 Matthew Fuller 2012-11-05 [merge]
Merge B:1
A foo
In further investigation, it seems that the extra merge in the block at [2] is not a necessary part of this, which simplifies things a bit. Just adding 2 Nada revs has the same effect. Here's the revised full log, when using mk_dir=false (and so having a /foo file rather than a /foo/ dir):
7 Matthew Fuller 2012-11-05
Nada
6 Matthew Fuller 2012-11-05 [merge]
Merge C:1
1.2.5 Matthew Fuller 2012-11-05
Nada
1.2.4 Matthew Fuller 2012-11-05
Nada
1.2.3 Matthew Fuller 2012-11-05
Nada
1.2.2 Matthew Fuller 2012-11-05 [merge]
Merge A:1
A foo
1.2.1 Matthew Fuller 2012-11-05
Nada
5 Matthew Fuller 2012-11-05
Nada
4 Matthew Fuller 2012-11-05
Nada
3 Matthew Fuller 2012-11-05
Edit file
M foo
2 Matthew Fuller 2012-11-05 [merge]
Merge B:1
A foo
1.1.1 Matthew Fuller 2012-11-05
Create foo
A foo
1 Matthew Fuller 2012-11-05
Init
Revised script to be attached.