[PATCH 0/6] Use time_t

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Git v2.9.2 was released in a hurry to accomodate for platforms like
Windows, where the `unsigned long` data type is 32-bit even for 64-bit
setups.

The quick fix was to simply disable all the testing with "absurd" future
dates.

However, we can do much better than that, as `time_t` exists, and at
least on 64-bit Windows it is 64-bit. Meaning: we *can* support these
absurd future dates on those platforms.

So let's do this.

One notable fallout of this patch series is that on 64-bit Linux (and
other platforms where `unsigned long` is 64-bit), we now limit the range
of dates to LONG_MAX (i.e. the *signed* maximum value). This needs to be
done as `time_t` can be signed (and indeed is at least on my Ubuntu
setup).

Obviously, I think that we can live with that, and I hope that all
interested parties agree.


Johannes Schindelin (6):
  t0006 & t5000: prepare for 64-bit time_t
  Specify explicitly where we parse timestamps
  Introduce a new "printf format" for timestamps
  Prepare for timestamps to use 64-bit signed types
  ref-filter: avoid using `unsigned long` for catch-all data type
  Use time_t where appropriate

 Documentation/technical/api-parse-options.txt |  8 +--
 Makefile                                      |  4 ++
 archive-tar.c                                 |  5 +-
 builtin/am.c                                  |  4 +-
 builtin/blame.c                               | 14 ++---
 builtin/fsck.c                                |  6 +-
 builtin/gc.c                                  |  2 +-
 builtin/log.c                                 |  4 +-
 builtin/merge-base.c                          |  2 +-
 builtin/name-rev.c                            |  6 +-
 builtin/pack-objects.c                        |  4 +-
 builtin/prune.c                               |  4 +-
 builtin/receive-pack.c                        | 10 +--
 builtin/reflog.c                              | 24 +++----
 builtin/show-branch.c                         |  4 +-
 builtin/worktree.c                            |  4 +-
 bundle.c                                      |  4 +-
 cache.h                                       | 14 ++---
 commit.c                                      | 16 ++---
 commit.h                                      |  2 +-
 config.mak.uname                              |  2 +
 credential-cache--daemon.c                    | 12 ++--
 date.c                                        | 90 +++++++++++++--------------
 fetch-pack.c                                  |  8 +--
 fsck.c                                        |  2 +-
 git-compat-util.h                             | 10 +++
 http-backend.c                                |  4 +-
 parse-options-cb.c                            |  4 +-
 pretty.c                                      |  4 +-
 reachable.c                                   | 10 ++-
 reachable.h                                   |  4 +-
 ref-filter.c                                  | 22 +++----
 reflog-walk.c                                 |  8 +--
 refs.c                                        | 14 ++---
 refs.h                                        |  8 +--
 refs/files-backend.c                          |  4 +-
 revision.c                                    |  6 +-
 revision.h                                    |  4 +-
 sha1_name.c                                   |  6 +-
 t/helper/test-date.c                          | 11 ++--
 t/helper/test-parse-options.c                 |  4 +-
 t/t0006-date.sh                               |  4 +-
 t/t5000-tar-tree.sh                           |  6 +-
 t/test-lib.sh                                 |  2 +
 tag.c                                         |  4 +-
 tag.h                                         |  2 +-
 upload-pack.c                                 |  8 +--
 vcs-svn/fast_export.c                         |  8 +--
 vcs-svn/fast_export.h                         |  4 +-
 vcs-svn/svndump.c                             |  2 +-
 wt-status.c                                   |  2 +-
 51 files changed, 221 insertions(+), 199 deletions(-)


base-commit: e7e07d5a4fcc2a203d9873968ad3e6bd4d7419d7
Published-As: https://github.com/dscho/git/releases/tag/time_t-may-be-int64-v1
Fetch-It-Via: git fetch https://github.com/dscho/git time_t-may-be-int64-v1

-- 
2.11.1.windows.1.379.g44ae0bc




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]