author | Ryan C. Gordon <icculus@icculus.org> |
Wed, 16 Apr 2008 17:58:11 -0400 | |
branch | trunk |
changeset 130 | e2eeb1f1c902 |
parent 125 | 9d7952ff149d |
child 166 | b34c2c71aeb6 |
permissions | -rwxr-xr-x |
123 | 1 |
#!/usr/bin/perl -w |
2 |
||
3 |
use strict; |
|
4 |
use warnings; |
|
5 |
||
6 |
print("Making sure svn working copy is up to date...\n"); |
|
125
9d7952ff149d
Fixed paths in svnpush.pl ...
Ryan C. Gordon <icculus@icculus.org>
parents:
123
diff
changeset
|
7 |
system("cd ../svn-mojoshader ; svn update"); |
9d7952ff149d
Fixed paths in svnpush.pl ...
Ryan C. Gordon <icculus@icculus.org>
parents:
123
diff
changeset
|
8 |
my $svnver = `cd ../svn-mojoshader ; svnversion`; |
123 | 9 |
chomp($svnver); |
125
9d7952ff149d
Fixed paths in svnpush.pl ...
Ryan C. Gordon <icculus@icculus.org>
parents:
123
diff
changeset
|
10 |
my $hgver = `cd ../svn-mojoshader ; svn log -r${svnver} |grep 'changeset:'`; |
123 | 11 |
chomp($hgver); |
12 |
$hgver =~ s/^changeset:\s+(\d+):.*\Z/$1/; |
|
13 |
my $min = $hgver; |
|
14 |
$hgver = `hg tip |grep 'changeset:'`; |
|
15 |
chomp($hgver); |
|
16 |
$hgver =~ s/^changeset:\s+(\d+):.*\Z/$1/; |
|
17 |
my $max = $hgver; |
|
18 |
||
19 |
if ($min == $max) { |
|
20 |
print("We're already up to date. Exiting.\n"); |
|
21 |
exit 0; |
|
22 |
} |
|
23 |
||
24 |
$min++; # $min was the last committed revision, so we need to start one later. |
|
25 |
||
26 |
print("first hg revision to commit to svn == '$min'\n"); |
|
27 |
print("last hg revision to commit to svn == '$max'\n"); |
|
28 |
||
29 |
my $i; |
|
30 |
for ($i = $min; $i <= $max; $i++) { |
|
31 |
my $p = $i - 1; |
|
32 |
||
33 |
print("Revision #$i ...\n"); |
|
34 |
print("Getting log from Mercurial...\n"); |
|
35 |
system("hg log -v -r$i |grep -v '^tag: ' |tail -n +7 > commit.txt"); |
|
36 |
system("echo >> commit.txt"); |
|
37 |
system("echo 'This commit is from my temporary Mercurial repository...' >> commit.txt"); |
|
38 |
system("hg log -v -r$i |grep -v '^tag: ' |head -n 4 >> commit.txt"); |
|
39 |
print("Getting diff...\n"); |
|
40 |
system("hg diff -r${p}:${i} > patch.diff"); |
|
41 |
print("Patching svn working copy...\n"); |
|
125
9d7952ff149d
Fixed paths in svnpush.pl ...
Ryan C. Gordon <icculus@icculus.org>
parents:
123
diff
changeset
|
42 |
system("cd ../svn-mojoshader ; patch -p1 < ../mojoshader/patch.diff"); |
123 | 43 |
print("Committing svn working copy...\n"); |
125
9d7952ff149d
Fixed paths in svnpush.pl ...
Ryan C. Gordon <icculus@icculus.org>
parents:
123
diff
changeset
|
44 |
system("cd ../svn-mojoshader ; svn commit -F ../mojoshader/commit.txt"); |
123 | 45 |
print("Cleaning up...\n"); |
46 |
system("rm -rf commit.txt patch.diff"); |
|
47 |
print("...revision committed!\n"); |
|
48 |
} |
|
49 |
||
50 |
print("svn push complete!\n\n"); |
|
51 |
exit 0; |
|
52 |