* [PATCH] Make core.sharedRepository work under cygwin 1.7
@ 2013-03-14 16:01 Torsten Bögershausen
0 siblings, 0 replies; only message in thread
From: Torsten Bögershausen @ 2013-03-14 16:01 UTC (permalink / raw)
To: git; +Cc: tboegi
When core.sharedRepository is used, set_shared_perm() in path.c
needs lstat() to return the correct POSIX permissions.
The default for cygwin is core.ignoreCygwinFSTricks = false, which
means that a simplified and fast implementation of lstat() is used.
Especially the file permission bits are wrong in cygwin_lstat_fn():
The read-only attribute of a file is used to calculate
the permissions, resulting in either rw-r--r-- or r--r--r--
Use a compile switch IGNORECYGWINFSTRICKS to disable the usage
of cygwin_lstat_fn() only in path.c
Signed-off-by: Torsten Bögershausen <tboegi@web.de>
---
compat/cygwin.h | 2 ++
path.c | 2 ++
2 files changed, 4 insertions(+)
diff --git a/compat/cygwin.h b/compat/cygwin.h
index a3229f5..984efbe 100644
--- a/compat/cygwin.h
+++ b/compat/cygwin.h
@@ -5,5 +5,7 @@ typedef int (*stat_fn_t)(const char*, struct stat*);
extern stat_fn_t cygwin_stat_fn;
extern stat_fn_t cygwin_lstat_fn;
+#ifndef IGNORECYGWINFSTRICKS
#define stat(path, buf) (*cygwin_stat_fn)(path, buf)
#define lstat(path, buf) (*cygwin_lstat_fn)(path, buf)
+#endif
diff --git a/path.c b/path.c
index d3d3f8b..0acfabf 100644
--- a/path.c
+++ b/path.c
@@ -10,6 +10,8 @@
*
* which is what it's designed for.
*/
+#define IGNORECYGWINFSTRICKS
+
#include "cache.h"
#include "strbuf.h"
#include "string-list.h"
--
1.8.1.3
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2013-03-14 16:02 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-14 16:01 [PATCH] Make core.sharedRepository work under cygwin 1.7 Torsten Bögershausen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox