chiark
/
gitweb
/
~ianmdlvl
/
dgit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'stable' into HEAD
[dgit.git]
/
dgit
diff --git
a/dgit
b/dgit
index 8b9934b807c020233bc9f90d76487988460e2b30..9c7ec734e9f52c4371a31e817a3a392981c0f399 100755
(executable)
--- a/
dgit
+++ b/
dgit
@@
-3913,6
+3913,7
@@
sub splitbrain_pseudomerge ($$$$) {
#
return $dgitview unless defined $archive_hash;
#
return $dgitview unless defined $archive_hash;
+ return $dgitview if deliberately_not_fast_forward();
printdebug "splitbrain_pseudomerge...\n";
printdebug "splitbrain_pseudomerge...\n";
@@
-4915,12
+4916,18
@@
sub quiltify_trees_differ ($$;$$$) {
$oldmode =~ m/^(?:10|12)\d{4}$/;
if ($oldmode =~ m/[^0]/ &&
$newmode =~ m/[^0]/) {
$oldmode =~ m/^(?:10|12)\d{4}$/;
if ($oldmode =~ m/[^0]/ &&
$newmode =~ m/[^0]/) {
+ # both old and new files exist
die "mode or type changed\n" if $oldmode ne $newmode;
die "modified symlink\n" unless $newmode =~ m/^10/;
die "mode or type changed\n" if $oldmode ne $newmode;
die "modified symlink\n" unless $newmode =~ m/^10/;
+ } elsif ($oldmode =~ m/[^0]/) {
+ # deletion
+ die "deletion of symlink\n"
+ unless $oldmode =~ m/^10/;
} else {
} else {
- die "non-default mode or type\n"
- unless $newmode =~ m/^100644$/ ||
- $oldmode =~ m/^100644$/;
+ # creation
+ die "creation with non-default mode\n"
+ unless $newmode =~ m/^100644$/ or
+ $newmode =~ m/^120000$/;
}
};
if ($@) {
}
};
if ($@) {