On Sat, 25 Apr 2009, Johannes Schindelin wrote:
quoted hunk ↗ jump to hunk
diff --git a/sha1_file.c b/sha1_file.c
index 8fe135d..bb6eecf 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -2225,7 +2225,9 @@ int move_temp_to_file(const char *tmpfile, const char *filename)
{
int ret = 0;
- if (link(tmpfile, filename))
+ if (unreliable_hardlinks)
+ ret = ~EEXIST; /* anything but EEXIST */
Don't do this. ~EEXIST could be 0 (admittedly only if EEXIST is -1 which
is not reasonable, but who knows about odd operating systems). Which is
not a good return value either.
So why not just use an explicit error value like EIO? Don't play games
with this.
Linus