chiark
/
gitweb
/
~ianmdlvl
/
dgit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
before abolish main branch and use only upload one
[dgit.git]
/
dgit
diff --git
a/dgit
b/dgit
index b3ade7a2085939ad3336938f7c099721387854a8..d51a826ed54eaee0b8eb410d636aaf137ec1e626 100755
(executable)
--- a/
dgit
+++ b/
dgit
@@
-131,7
+131,7
@@
sub check_for_git () {
return $r+0;
}
return $r+0;
}
-our ($dsc_hash,$
lastupl
_hash);
+our ($dsc_hash,$
upload
_hash);
our $ud = '.git/dgit/unpack';
our $ud = '.git/dgit/unpack';
@@
-189,7
+189,7
@@
sub generate_commit_from_dsc () {
$authline =~ m/^[^<>]+ \<\S+\> \d+ [-+]\d+$/ or die $authline;
open C, ">../commit.tmp" or die $!;
print C "tree $tree\n" or die $!;
$authline =~ m/^[^<>]+ \<\S+\> \d+ [-+]\d+$/ or die $authline;
open C, ">../commit.tmp" or die $!;
print C "tree $tree\n" or die $!;
- print C "parent $
lastupl_hash\n" or die $! if defined $lastupl
_hash;
+ print C "parent $
upload_hash\n" or die $! if defined $upload
_hash;
print C <<END or die $!;
author $authline
committer $authline
print C <<END or die $!;
author $authline
committer $authline
@@
-207,9
+207,9
@@
END
cmdoutput qw(git log -n2), $commithash;
# ... gives git a chance to complain if our commit is malformed
my $outputhash = $commithash;
cmdoutput qw(git log -n2), $commithash;
# ... gives git a chance to complain if our commit is malformed
my $outputhash = $commithash;
- if (defined $
lastupl
_hash) {
+ if (defined $
upload
_hash) {
chdir "$ud/$dir" or die $!;
chdir "$ud/$dir" or die $!;
- runcmd qw(git reset --hard), $
lastupl
_hash;
+ runcmd qw(git reset --hard), $
upload
_hash;
runcmd qw(sh -ec), 'dpkg-parsechangelog >>../changelogold.tmp';
my $oldclogp = Dpkg::Control::Hash->new();
$oldclogp->parse('../changelogold.tmp','previous changelog') or die;
runcmd qw(sh -ec), 'dpkg-parsechangelog >>../changelogold.tmp';
my $oldclogp = Dpkg::Control::Hash->new();
$oldclogp->parse('../changelogold.tmp','previous changelog') or die;
@@
-240,31
+240,33
@@
sub rev_parse ($) {
sub is_fast_fwd ($$) {
my ($ancestor,$child) = @_;
sub is_fast_fwd ($$) {
my ($ancestor,$child) = @_;
- my $mb = cmdoutput qw(git merge-base), $dsc_hash, $
lastupl
_hash;
+ my $mb = cmdoutput qw(git merge-base), $dsc_hash, $
upload
_hash;
return rev_parse($mb) eq rev_parse($ancestor);
}
sub fetch_from_archive () {
# ensures that rref(uploadbranch()) is what is actually in the archive,
# one way or another
return rev_parse($mb) eq rev_parse($ancestor);
}
sub fetch_from_archive () {
# ensures that rref(uploadbranch()) is what is actually in the archive,
# one way or another
- my $
lastupl
_ref = rref(uploadbranch());
- $!=0; $
lastupl_hash = `git show-ref --heads $lastupl
_ref`;
+ my $
upload
_ref = rref(uploadbranch());
+ $!=0; $
upload_hash = `git show-ref --heads $upload
_ref`;
die $! if $!;
die $! if $!;
- die $? unless ($?==0 && chomp $
lastupl
_hash)
- or ($?==128 && !length $
lastupl
_hash);
+ die $? unless ($?==0 && chomp $
upload
_hash)
+ or ($?==128 && !length $
upload
_hash);
my $hash;
if (defined $dsc_hash) {
my $hash;
if (defined $dsc_hash) {
+ die "missing git history even though dsc has hash"
+ unless length $upload_hash;
$hash = $dsc_hash;
} else {
$hash = generate_commit_from_dsc();
}
$hash = $dsc_hash;
} else {
$hash = generate_commit_from_dsc();
}
- if (
$lastupl
_hash) {
+ if (
length $upload
_hash) {
die "not fast forward on last upload branch!".
" (archive's version left in DGIT_ARCHIVE)"
die "not fast forward on last upload branch!".
" (archive's version left in DGIT_ARCHIVE)"
- unless is_fast_fwd($
lastupl_hash, $dsc
_hash);
+ unless is_fast_fwd($
dsc_hash, $upload
_hash);
}
}
- if ($
lastupl_ref
ne $hash) {
- cmdoutput qw(git update-ref -m), 'dgit fetch', $
lastupl
_ref, $hash;
+ if ($
upload_hash
ne $hash) {
+ cmdoutput qw(git update-ref -m), 'dgit fetch', $
upload
_ref, $hash;
}
}
}
}
@@
-287,7
+289,6
@@
sub clone () {
fetch_from_archive();
runcmd qw(git reset --hard), rref(uploadbranch());
} else {
fetch_from_archive();
runcmd qw(git reset --hard), rref(uploadbranch());
} else {
- die "missing git history even though dsc has hash" if defined $dsc_hash;
print "starting new git history\n";
mkdir $dstdir or die "$dstdir $!";
chdir "$dstdir" or die "$dstdir $!";
print "starting new git history\n";
mkdir $dstdir or die "$dstdir $!";
chdir "$dstdir" or die "$dstdir $!";
@@
-305,7
+306,16
@@
sub clone () {
}
sub fetch () {
}
sub fetch () {
-
+ if (check_for_git()) {
+ runcmd qw(git fetch -p),$remotename,
+ '+refs/heads/*:refs/remotes/origin/*';
+ }
+ fetch_from_archive();
+}
+
+sub pull () {
+ fetch();
+ runcmd qw(git merge),lref(uploadbranch());
}
sub push () {
}
sub push () {