| Line | |
|---|
| 1 | my $r = shift or die "Usage: perl svn2new.pl STARTING_SVN_REVISION\n";
|
|---|
| 2 | my @i = `svn log -qv -r $r:HEAD ../asma`;
|
|---|
| 3 | my (%a, %d);
|
|---|
| 4 | my @d;
|
|---|
| 5 | for (@i) {
|
|---|
| 6 | if (m{^ A /trunk/asma/(\S+\.sap)(?: \(from /trunk/asma/(\S+\.sap):\d+\))?}) {
|
|---|
| 7 | $a{$1} = 1, delete $d{$1} if !$2 || delete $a{$2};
|
|---|
| 8 | }
|
|---|
| 9 | elsif (m{^ D /trunk/asma/(\S+)}) {
|
|---|
| 10 | # postpone deletes after adds, so that copy+delete in one commit works
|
|---|
| 11 | push @d, $1;
|
|---|
| 12 | }
|
|---|
| 13 | elsif (m{^---}) {
|
|---|
| 14 | for (@d) {
|
|---|
| 15 | $d{$_} = 1;
|
|---|
| 16 | if (/\.sap$/) {
|
|---|
| 17 | delete $a{$_};
|
|---|
| 18 | }
|
|---|
| 19 | else {
|
|---|
| 20 | my $dir = $_;
|
|---|
| 21 | delete @a{grep m{^$dir/}, keys %a};
|
|---|
| 22 | }
|
|---|
| 23 | }
|
|---|
| 24 | @d = ();
|
|---|
| 25 | }
|
|---|
| 26 | }
|
|---|
| 27 | open F, ">new.txt" or die;
|
|---|
| 28 | print F "$_\n" for sort keys %a;
|
|---|
| 29 | open F, ">deleted.txt" or die;
|
|---|
| 30 | print F "$_\n" for sort keys %d;
|
|---|
| 31 | printf "New: %d Deleted: %d\n", scalar(keys %a), scalar(keys %d);
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.