-diff -u -r ../git-2.8.1/config.c ./config.c
---- ../git-2.8.1/config.c 2016-04-03 15:07:18.000000000 -0400
-+++ ./config.c 2016-04-21 18:37:26.707906688 -0400
-@@ -49,6 +49,25 @@
- */
- static struct config_set the_config_set;
+diff -u -r ../git-2.16.0/config.c ./config.c
+--- ../git-2.16.0/config.c 2018-01-17 22:49:47.000000000 +0000
++++ ./config.c 2018-01-20 21:49:42.940523576 +0000
+@@ -73,6 +73,25 @@
+ static int pack_compression_seen;
+ static int zlib_compression_seen;
+/*
+ * Protecting the project-specific git configuration file (.git/config) is
static int config_file_fgetc(struct config_source *conf)
{
return getc_unlocked(conf->u.file);
-@@ -2125,10 +2147,14 @@
+@@ -2608,9 +2627,13 @@
in_fd = -1;
- if (chmod(get_lock_file_path(lock), st.st_mode & 07777) < 0) {
+ if (chmod(get_lock_file_path(&lock), st.st_mode & 07777) < 0) {
+#ifdef __ANDROID__
+ termux_warn_once_about_lockfile();
+#else
- error("chmod on %s failed: %s",
- get_lock_file_path(lock), strerror(errno));
+ error_errno("chmod on %s failed", get_lock_file_path(&lock));
ret = CONFIG_NO_WRITE;
goto out_free;
+#endif
}
if (store.seen == 0)
-@@ -2330,9 +2356,13 @@
- fstat(fileno(config_file), &st);
+@@ -2810,9 +2833,13 @@
+ }
- if (chmod(get_lock_file_path(lock), st.st_mode & 07777) < 0) {
+ if (chmod(get_lock_file_path(&lock), st.st_mode & 07777) < 0) {
+#ifdef __ANDROID__
+ termux_warn_once_about_lockfile();
+#else
- ret = error("chmod on %s failed: %s",
- get_lock_file_path(lock), strerror(errno));
+ ret = error_errno("chmod on %s failed",
+ get_lock_file_path(&lock));
goto out;
+#endif
}