We use it to ascertain whether or not the user wants an ellipsis
printed after an abbreviated SHA-1 value.

By de-asserting it in the default, we encourage not printing the
ellipsis in such circumstances.

Not adding a corresponding cli option is intentional; and we would like
to remove the config option *and* the ellipses after abbreviated SHA-1
values after a respectable period.

Signed-off-by: Ann T Ropea <bedhan...@gmx.de>
---
v2: rename patch series & focus on removal of ellipses
 Documentation/config.txt | 10 ++++++++++
 cache.h                  |  1 +
 config.c                 |  9 +++++++++
 environment.c            |  1 +
 4 files changed, 21 insertions(+)

diff --git a/Documentation/config.txt b/Documentation/config.txt
index 671fcbaa0fd1..93887820ff89 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -898,6 +898,16 @@ core.abbrev::
        abbreviated object names to stay unique for some time.
        The minimum length is 4.
 
+core.printsha1ellipsis (deprecated)::
+       A Boolean controlling whether an ellipsis should be
+       printed following an (abbreviated) SHA-1 value.  This
+       affects indications of detached HEADs or the raw diff
+       output.  Printing an ellipsis in the cases mentioned is no
+       longer considered adequate and support for it will be
+       removed in the foreseeable future (along with the
+       option).
+       Therefore, the default is false.
+
 add.ignoreErrors::
 add.ignore-errors (deprecated)::
        Tells 'git add' to continue adding files when some files cannot be
diff --git a/cache.h b/cache.h
index cb7fb7c004be..5cbc50a0c1ab 100644
--- a/cache.h
+++ b/cache.h
@@ -753,6 +753,7 @@ extern int check_stat;
 extern int quote_path_fully;
 extern int has_symlinks;
 extern int minimum_abbrev, default_abbrev;
+extern int print_sha1_ellipsis;
 extern int ignore_case;
 extern int assume_unchanged;
 extern int prefer_symlink_refs;
diff --git a/config.c b/config.c
index 903abf9533b1..f560aea5e98b 100644
--- a/config.c
+++ b/config.c
@@ -1073,6 +1073,15 @@ static int git_default_core_config(const char *var, 
const char *value)
                return 0;
        }
 
+       /* Printing an ellipsis after an abbreviated SHA-1 value
+        * is no longer desired but must be selectable for some
+        * time to come.
+        */
+       if (!strcmp(var, "core.printsha1ellipsis")) {
+               print_sha1_ellipsis = git_config_bool(var, value);
+               return 0;
+       }
+
        if (!strcmp(var, "core.disambiguate"))
                return set_disambiguate_hint_config(var, value);
 
diff --git a/environment.c b/environment.c
index 8289c25b44d7..5ceb92f921c6 100644
--- a/environment.c
+++ b/environment.c
@@ -19,6 +19,7 @@ int trust_ctime = 1;
 int check_stat = 1;
 int has_symlinks = 1;
 int minimum_abbrev = 4, default_abbrev = -1;
+int print_sha1_ellipsis = 0; /* Only if the user requests it. */
 int ignore_case;
 int assume_unchanged;
 int prefer_symlink_refs;
-- 
2.13.6

Reply via email to