chiark / gitweb /
Provide dgit setup-new-tree (like dpkg-setup-mergechangelogs but only does it if...
[dgit.git] / dgit
diff --git a/dgit b/dgit
index ae96531e38072c586035a080e9db3f7fd0c4d399..d8a49dbc60351c60d3bee80e1b963b79b335e10f 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -1638,7 +1638,10 @@ sub set_local_git_config ($$) {
     runcmd @git, qw(config), $k, $v;
 }
 
-sub setup_mergechangelogs () {
+sub setup_mergechangelogs (;$) {
+    my ($always) = @_;
+    return unless $always || access_cfg_bool(1, 'setup-mergechangelogs');
+
     my $driver = 'dpkg-mergechangelogs';
     my $cb = "merge.$driver";
     my $attrs = '.git/info/attributes';
@@ -1665,6 +1668,10 @@ sub setup_mergechangelogs () {
     rename "$attrs.new", "$attrs" or die "$attrs: $!";
 }
 
+sub setup_new_tree () {
+    setup_mergechangelogs();
+}
+
 sub clone ($) {
     my ($dstdir) = @_;
     canonicalise_suite();
@@ -1694,7 +1701,7 @@ sub clone ($) {
        $vcsgiturl =~ s/\s+-b\s+\S+//g;
        runcmd @git, qw(remote add vcs-git), $vcsgiturl;
     }
-    setup_mergechangelogs();
+    setup_new_tree();
     runcmd @git, qw(reset --hard), lrref();
     printdone "ready for work in $dstdir";
 }
@@ -3021,7 +3028,12 @@ sub cmd_clone_dgit_repos_server {
 
 sub cmd_setup_mergechangelogs {
     badusage "no arguments allowed to dgit setup-mergechangelogs" if @ARGV;
-    setup_mergechangelogs();
+    setup_mergechangelogs(1);
+}
+
+sub cmd_setup_new_tree {
+    badusage "no arguments allowed to dgit setup-tree" if @ARGV;
+    setup_new_tree();
 }
 
 #---------- argument parsing and main program ----------