chiark
/
gitweb
/
~ianmdlvl
/
dgit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
dgit: unrepres. changes: Separate out creation and deletion
[dgit.git]
/
dgit
diff --git
a/dgit
b/dgit
index 8b9934b807c020233bc9f90d76487988460e2b30..1f1563075bbc065d80fea603c5e5e2bb05d41631 100755
(executable)
--- a/
dgit
+++ b/
dgit
@@
-4915,9
+4915,16
@@
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 "non-default mode or type\n"
+ unless $newmode =~ m/^100644$/ ||
+ $oldmode =~ m/^100644$/;
} else {
} else {
+ # creation
die "non-default mode or type\n"
unless $newmode =~ m/^100644$/ ||
$oldmode =~ m/^100644$/;
die "non-default mode or type\n"
unless $newmode =~ m/^100644$/ ||
$oldmode =~ m/^100644$/;