From: Junio C Hamano <gitster@pobox•com>
To: Johannes Sixt <j.sixt@viscovery•net>
Cc: Kjetil Barvik <barvik@broadpark•no>, git@vger•kernel.org
Subject: Re: [PATCH 2/2] better introduction of GIT with USE_NSEC defined
Date: Thu, 05 Mar 2009 10:55:07 -0800 [thread overview]
Message-ID: <7v4oy7241g.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <49AFBDAD.5040501@viscovery.net> (Johannes Sixt's message of "Thu, 05 Mar 2009 12:55:25 +0100")
Johannes Sixt <j.sixt@viscovery•net> writes:
> Yes, it breaks. You can test this on Linux by commenting out these two
> lines in git-compat-util.h:
>
> diff --git a/git-compat-util.h b/git-compat-util.h
> index dcf4127..ab4b615 100644
> --- a/git-compat-util.h
> +++ b/git-compat-util.h
> @@ -44,8 +44,8 @@
> #define _XOPEN_SOURCE_EXTENDED 1 /* AIX 5.3L needs this */
> #endif
> #define _ALL_SOURCE 1
> -#define _GNU_SOURCE 1
> -#define _BSD_SOURCE 1
> +/*#define _GNU_SOURCE 1*/
> +/*#define _BSD_SOURCE 1*/
>
> #include <unistd.h>
> #include <stdio.h>
>
> The result even passes the test suite (as long as I don't merge
> kb/checkout-optim, of course).
Isn't it better to separate "do we want to use that information if we can
nanosecocond timestamps" and "is the API available for reading nanosecond
timestamps" into separete switches, like this partial patch on top of the
patch we are discussing, then? It is partial because it shows the way to
convert only one call site as an example and of course you need to update
the Makefile and autoconf.
diff --git a/git-compat-util.h b/git-compat-util.h
index 079cbe9..910aa03 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -384,4 +384,12 @@ void git_qsort(void *base, size_t nmemb, size_t size,
# define FORCE_DIR_SET_GID 0
#endif
+#ifdef HAS_NSEC
+#define ST_CTIME_NSEC(st) ((unsigned ing)((st).st_ctim.tv_nsec))
+#define ST_MTIME_NSEC(st) ((unsigned ing)((st).st_mtim.tv_nsec))
+#else
+#define ST_CTIME_NSEC(st) 0
+#define ST_MTIME_NSEC(st) 0
+#endif
+
#endif
diff --git a/read-cache.c b/read-cache.c
index 91f1d03..bb5cb2b 100644
--- a/read-cache.c
+++ b/read-cache.c
@@ -69,13 +69,8 @@ void fill_stat_cache_info(struct cache_entry *ce, struct stat *st)
{
ce->ce_ctime.sec = (unsigned int)st->st_ctime;
ce->ce_mtime.sec = (unsigned int)st->st_mtime;
-#ifdef USE_NSEC
- ce->ce_ctime.nsec = (unsigned int)st->st_ctim.tv_nsec;
- ce->ce_mtime.nsec = (unsigned int)st->st_mtim.tv_nsec;
-#else
- ce->ce_ctime.nsec = 0;
- ce->ce_mtime.nsec = 0;
-#endif
+ ce->ce_ctime.nsec = ST_CTIME_NSEC(*st);
+ ce->ce_mtime.nsec = ST_MTIME_NSEC(*st);
ce->ce_dev = st->st_dev;
ce->ce_ino = st->st_ino;
ce->ce_uid = st->st_uid;
next prev parent reply other threads:[~2009-03-05 18:56 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-04 17:47 [PATCH 0/2] some few more 'git checkout' improvements Kjetil Barvik
2009-03-04 17:47 ` [PATCH 1/2] stat_tracking_info(): only count real commits Kjetil Barvik
2009-03-04 17:47 ` [PATCH 2/2] better introduction of GIT with USE_NSEC defined Kjetil Barvik
2009-03-05 0:41 ` Junio C Hamano
2009-03-05 7:17 ` Kjetil Barvik
2009-03-05 7:38 ` Junio C Hamano
2009-03-05 9:11 ` Johannes Sixt
2009-03-05 11:55 ` Johannes Sixt
2009-03-05 18:55 ` Junio C Hamano [this message]
2009-03-05 20:02 ` Junio C Hamano
2009-03-06 7:56 ` Johannes Sixt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7v4oy7241g.fsf@gitster.siamese.dyndns.org \
--to=gitster@pobox$(echo .)com \
--cc=barvik@broadpark$(echo .)no \
--cc=git@vger$(echo .)kernel.org \
--cc=j.sixt@viscovery$(echo .)net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox