Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Let git-mktree validate tree objects better #6

Closed
wants to merge 136 commits into from
Closed
Changes from 3 commits
Commits
Show all changes
136 commits
Select commit Hold shift + click to select a range
e86f8ba
Merge branch 'sv/doc-stripspace' into next
gitster Dec 15, 2014
f5759d0
Merge branch 'jc/hook-cleanup' into next
gitster Dec 15, 2014
20b045f
Merge branch 'jk/colors' into next
gitster Dec 15, 2014
c48b110
Merge branch 'jk/lock-ref-sha1-basic-return-errors' into next
gitster Dec 15, 2014
3834789
Merge branch 'mg/add-ignore-errors' into next
gitster Dec 15, 2014
3e5490b
Merge branch 'tb/config-core-filemode-check-on-broken-fs' into next
gitster Dec 15, 2014
0e88699
Merge branch 'jc/refer-to-t-readme-from-submitting-patches' into next
gitster Dec 15, 2014
65ffd05
Merge branch 'js/t5000-dont-copy-bin-sh' into next
gitster Dec 15, 2014
6e8e9ff
Merge branch 'rj/no-xopen-source-for-cygwin' into next
gitster Dec 15, 2014
42937b7
Merge branch 'dw/shell-basename-dashdash-before-stripping-leading-das…
gitster Dec 15, 2014
351e03e
Merge branch 'mh/simplify-repack-without-refs' into next
gitster Dec 15, 2014
b44b6bd
Merge branch 'pb/am-message-id-footer' into next
gitster Dec 15, 2014
38c2810
Merge branch 'pb/send-email-te' into next
gitster Dec 15, 2014
08fdf77
Merge branch 'jc/clone-borrow' into next
gitster Dec 15, 2014
e91a7df
Merge branch 'jc/checkout-local-track-report' into next
gitster Dec 15, 2014
59c6636
Merge branch 'jc/diff-b-m' into next
gitster Dec 15, 2014
b499889
Merge branch 'jc/strbuf-add-lines-avoid-sp-ht-sequence' into next
gitster Dec 15, 2014
b72475f
Merge branch 'jc/conflict-hint' into next
gitster Dec 15, 2014
cac279e
Merge branch 'jc/merge-bases' into next
gitster Dec 15, 2014
34db9af
Merge branch 'nd/lockfile-absolute' into next
gitster Dec 15, 2014
504af0b
Merge branch 'br/imap-send-verbosity' into next
gitster Dec 15, 2014
90db637
Merge branch 'br/imap-send-via-libcurl' into next
gitster Dec 15, 2014
397e986
Merge branch 'jk/approxidate-avoid-y-d-m-over-future-dates' into next
gitster Dec 15, 2014
77f6c6a
Merge branch 'cc/interpret-trailers-more' into next
gitster Dec 15, 2014
e3b2b62
Merge branch 'mh/find-uniq-abbrev' into next
gitster Dec 15, 2014
f926ee5
Merge branch 'jc/exec-cmd-system-path-leak-fix' into next
gitster Dec 15, 2014
ef8c99f
Merge branch 'js/push-to-deploy' into next
gitster Dec 15, 2014
f56c339
Merge branch 'rj/t0050-passes' into next
gitster Dec 15, 2014
c0fcefb
Merge branch 'rt/for-each-ref-spell-tcl-as-Tcl' into next
gitster Dec 15, 2014
8da6e09
Merge branch 'nd/ls-tree-pathspec' into next
gitster Dec 15, 2014
0787b56
Merge branch 'ps/new-workdir-into-empty-directory' into next
gitster Dec 15, 2014
0eb2fe6
Merge branch 'dm/compat-s-ifmt-for-zos' into next
gitster Dec 15, 2014
4cfd999
Merge branch 'jk/credential-quit' into next
gitster Dec 15, 2014
c50f748
Merge branch 'mg/doc-check-ignore-tracked-are-not-ignored' into next
gitster Dec 15, 2014
b03ee39
Merge branch 'rt/completion-tag' into next
gitster Dec 15, 2014
8bb8ddd
Merge branch 'sb/string-list' into next
gitster Dec 15, 2014
de71f08
Merge branch 'jk/for-each-reflog-ent-reverse' into next
gitster Dec 15, 2014
ba24e75
Merge branch 'tb/t0027-eol-conversion' into next
gitster Dec 15, 2014
8366f2c
Merge branch 'mg/branch-d-m-f' into next
gitster Dec 15, 2014
646e77e
Merge branch 'po/doc-assume-unchanged' into next
gitster Dec 15, 2014
455f26c
Merge branch 'js/fsck-tag-validation' into next
gitster Dec 15, 2014
a8da691
Merge branch 'js/test-hashmap-squelch-gcc' into next
gitster Dec 15, 2014
ded2f99
Merge branch 'rw/apply-does-not-take-ignore-date' into next
gitster Dec 15, 2014
c3fb2c8
Merge branch 'jk/always-allow-large-packets' into next
gitster Dec 15, 2014
c6d6f56
Merge branch 'jk/read-packed-refs-without-path-max' into next
gitster Dec 15, 2014
4a1f7ed
Merge branch 'ok/rebase-i-count-todo' into next
gitster Dec 15, 2014
d24cb92
Merge branch 'jk/test-asan' into next
gitster Dec 15, 2014
ed6490c
Merge branch 'nd/split-index' into next
gitster Dec 15, 2014
047530e
Merge branch 'jk/commit-date-approxidate' into next
gitster Dec 15, 2014
32d7d50
Merge branch 'ch/new-gpg-drops-rfc-1991' into next
gitster Dec 15, 2014
bb9cac9
Merge branch 'jg/prompt-localize-temporary' into next
gitster Dec 15, 2014
d6426a0
Merge branch 'rs/use-strbuf-complete-line' into next
gitster Dec 15, 2014
fbed2d8
Merge branch 'ch/new-gpg-drops-rfc-1991' into next
gitster Dec 16, 2014
41e5f3a
Merge branch 'master' into next
gitster Dec 18, 2014
0ad48de
Merge branch 'master' into next
gitster Dec 22, 2014
3aa9a62
Merge branch 'mh/update-ref-verify' into next
gitster Dec 23, 2014
9b76001
Merge branch 'jk/add-i-read-error' into next
gitster Dec 23, 2014
e2b10ab
Merge branch 'pd/completion-filenames-fix' into next
gitster Dec 23, 2014
2b101ce
Merge branch 'rd/send-email-2047-fix' into next
gitster Dec 23, 2014
fc16c68
Merge branch 'lh/send-email-hide-x-mailer' into next
gitster Dec 23, 2014
a992011
Merge branch 'sb/t5400-remove-unused' into next
gitster Dec 23, 2014
e88cf6a
Merge branch 'es/squelch-openssl-warnings-on-macosx' into next
gitster Dec 23, 2014
d2b3e84
Merge branch 'po/doc-core-ignorestat' into next
gitster Dec 23, 2014
c865690
Merge branch 'sb/dco-indentation-fix' into next
gitster Dec 23, 2014
3a2ec87
Merge branch 'jc/t9001-modernise' into next
gitster Dec 23, 2014
b4ce669
Merge branch 'bb/update-unicode-table' into next
gitster Dec 23, 2014
dfcd89f
Merge branch 'tf/prompt-preserve-exit-status' into next
gitster Dec 23, 2014
c516021
Merge branch 'jh/pre-push-sample-no-custom-ifs' into next
gitster Dec 29, 2014
c19b91c
Merge branch 'dotgit-case-maint-1.8.5' into next
gitster Dec 29, 2014
9301c36
Merge branch 'bw/maint-0090-awk-tweak' into next
gitster Dec 29, 2014
cc831f2
Sync with master
gitster Dec 29, 2014
7b76eed
Merge branch 'cc/bisect-rev-parsing' into next
gitster Jan 7, 2015
d45c06d
Merge branch 'es/checkout-index-temp' into next
gitster Jan 7, 2015
4d4a600
Merge branch 'rs/plug-strbuf-leak-in-lock-ref' into next
gitster Jan 7, 2015
2cb8cea
Merge branch 'rs/plug-strbuf-leak-in-merge' into next
gitster Jan 7, 2015
51446e0
Merge branch 'rs/simplify-parsing-commit-tree-S' into next
gitster Jan 7, 2015
cd27fc8
Merge branch 'rs/simplify-transport-get' into next
gitster Jan 7, 2015
c362440
Merge branch 'sb/doc-submitting-patches-keep-notes' into next
gitster Jan 7, 2015
60f9ada
Merge branch 'bc/fetch-thin-less-aggressive-in-normal-repository' int…
gitster Jan 7, 2015
47473d1
Merge branch 'master' into next
gitster Jan 7, 2015
4ac2a10
log: teach --invert-grep option
junghans Dec 19, 2014
d6db8a9
Sync with v2.3.0-rc0
gitster Jan 12, 2015
ccff14f
Merge branch 'js/remote-add-with-insteadof' into next
gitster Jan 12, 2015
5bb8802
Merge branch 'km/imap-send-libcurl-options' into next
gitster Jan 12, 2015
437bf8a
Merge branch 'km/log-usage-string-i18n' into next
gitster Jan 12, 2015
7c488d6
Merge branch 'sp/subtree-doc' into next
gitster Jan 12, 2015
61d0b22
Merge branch 'aw/doc-smtp-ssl-cert-path' into next
gitster Jan 12, 2015
edcdead
Merge branch 'mm/complete-rebase-autostash' into next
gitster Jan 12, 2015
9aed017
Merge branch 'rh/hide-prompt-in-ignored-directory' into next
gitster Jan 12, 2015
eac0b93
Merge branch 'rh/test-color-avoid-terminfo-in-original-home' into next
gitster Jan 12, 2015
c660a71
Merge branch 'po/doc-core-ignorestat' into next
gitster Jan 12, 2015
94eef27
Merge branch 'rc/for-each-ref-tracking' into next
gitster Jan 12, 2015
5e789e2
Merge branch 'jk/prune-packed-server-info' into next
gitster Jan 12, 2015
313c449
Merge branch 'jn/rerere-fail-on-auto-update-failure' into next
gitster Jan 12, 2015
4c67038
Merge branch 'bc/http-fallback-to-password-after-krb-fails' into next
gitster Jan 12, 2015
6b4605b
Merge branch 'dk/format-patch-ignore-diff-submodule' into next
gitster Jan 12, 2015
3a0de03
Merge branch 'ak/show-branch-usage-string' into next
gitster Jan 12, 2015
57f125c
Merge branch 'rh/autoconf-rhel3' into next
gitster Jan 12, 2015
0888edf
Merge branch 'ak/doc-add-v-n-options' into next
gitster Jan 12, 2015
d425e96
Merge branch 'ak/fewer-includes' into next
gitster Jan 12, 2015
0cbbf4a
Merge branch 'km/gettext-n' into next
gitster Jan 12, 2015
4589ca2
Merge branch 'cj/log-invert-grep' into next
gitster Jan 12, 2015
12a7dff
Merge branch 'mh/reflog-expire' into next
gitster Jan 12, 2015
411c6a6
Merge branch 'sb/atomic-push' into next
gitster Jan 12, 2015
e64df63
Merge branch 'jc/push-to-checkout' into next
gitster Jan 12, 2015
1f57989
Revert "Merge branch 'cj/log-invert-grep' into next"
gitster Jan 13, 2015
c908e99
Merge branch 'cj/log-invert-grep' into next
gitster Jan 13, 2015
a93d346
Merge branch 'tf/prompt-preserve-exit-status' into next
gitster Jan 14, 2015
12c4e28
Merge branch 'sb/atomic-push' into next
gitster Jan 14, 2015
cfa011e
Sync with master
gitster Jan 14, 2015
f681c76
Sync with git-svn update
gitster Jan 15, 2015
12b646a
Merge branch 'jk/http-push-symref-fix' into next
gitster Jan 16, 2015
f010b00
Merge branch 'js/t1050' into next
gitster Jan 16, 2015
1b32e21
Merge branch 'jk/blame-commit-label' into next
gitster Jan 16, 2015
bb1a4b3
Merge branch 'ak/cat-file-clean-up' into next
gitster Jan 16, 2015
2db92d6
git-p4: support excluding paths on sync
luked99 Jan 17, 2015
f40c73c
Merge branch 'master' into next
gitster Jan 21, 2015
8c770d1
Merge branch 'master' into next
gitster Jan 22, 2015
77fd5f0
Merge branch 'jc/unused-symbols' into next
gitster Jan 22, 2015
3c96639
Merge branch 'jc/coding-guidelines' into next
gitster Jan 22, 2015
2a81ecc
Merge branch 'jc/pretty-format-doc' into next
gitster Jan 22, 2015
e36f25a
Merge branch 'ak/typofixes' into next
gitster Jan 22, 2015
f6f1fc7
Merge branch 'ld/p4-exclude-in-sync' into next
gitster Jan 22, 2015
bfa5bab
Merge branch 'ah/usage-strings' into next
gitster Jan 22, 2015
ed972d3
Merge branch 'ld/p4-submit-hint' into next
gitster Jan 23, 2015
4b64765
Merge branch 'master' into next
gitster Jan 27, 2015
303d43c
Merge branch 'master' into next
gitster Feb 2, 2015
157212a
TO-UNDO: debug
dscho Dec 9, 2014
b097cc9
fsck_commit: look at parents only if the commit was parsed already
dscho Feb 3, 2015
2819adc
git-mktree: introduce the --strict option
dscho Dec 9, 2014
b7f3576
Add tests for git-mktree validation
dscho Dec 9, 2014
d2ccaa5
git hash-object: introduce the --strict option
dscho Dec 9, 2014
a8c1ace
Add a test for hash-object --strict
dscho Dec 9, 2014
f12847a
Enforce validation with `git replace --edit`
dscho Dec 9, 2014
abb0028
Verify that `git replace --edit` validates before replacing
dscho Dec 9, 2014
09826f5
DEBUG
dscho Feb 3, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 12 additions & 9 deletions date.c
Original file line number Diff line number Diff line change
@@ -405,9 +405,9 @@ static int is_date(int year, int month, int day, struct tm *now_tm, time_t now,
return 0;
}

static int match_multi_number(unsigned long num, char c, const char *date, char *end, struct tm *tm)
static int match_multi_number(unsigned long num, char c, const char *date,
char *end, struct tm *tm, time_t now)
{
time_t now;
struct tm now_tm;
struct tm *refuse_future;
long num2, num3;
@@ -433,17 +433,18 @@ static int match_multi_number(unsigned long num, char c, const char *date, char
case '-':
case '/':
case '.':
now = time(NULL);
if (!now)
now = time(NULL);
refuse_future = NULL;
if (gmtime_r(&now, &now_tm))
refuse_future = &now_tm;

if (num > 70) {
/* yyyy-mm-dd? */
if (is_date(num, num2, num3, refuse_future, now, tm))
if (is_date(num, num2, num3, NULL, now, tm))
break;
/* yyyy-dd-mm? */
if (is_date(num, num3, num2, refuse_future, now, tm))
if (is_date(num, num3, num2, NULL, now, tm))
break;
}
/* Our eastern European friends say dd.mm.yy[yy]
@@ -513,7 +514,7 @@ static int match_digit(const char *date, struct tm *tm, int *offset, int *tm_gmt
case '/':
case '-':
if (isdigit(end[1])) {
int match = match_multi_number(num, *end, date, end, tm);
int match = match_multi_number(num, *end, date, end, tm, 0);
if (match)
return match;
}
@@ -1013,7 +1014,8 @@ static const char *approxidate_alpha(const char *date, struct tm *tm, struct tm
return end;
}

static const char *approxidate_digit(const char *date, struct tm *tm, int *num)
static const char *approxidate_digit(const char *date, struct tm *tm, int *num,
time_t now)
{
char *end;
unsigned long number = strtoul(date, &end, 10);
@@ -1024,7 +1026,8 @@ static const char *approxidate_digit(const char *date, struct tm *tm, int *num)
case '/':
case '-':
if (isdigit(end[1])) {
int match = match_multi_number(number, *end, date, end, tm);
int match = match_multi_number(number, *end, date, end,
tm, now);
if (match)
return date + match;
}
@@ -1087,7 +1090,7 @@ static unsigned long approxidate_str(const char *date,
date++;
if (isdigit(c)) {
pending_number(&tm, &number);
date = approxidate_digit(date-1, &tm, &number);
date = approxidate_digit(date-1, &tm, &number, time_sec);
touched = 1;
continue;
}
3 changes: 3 additions & 0 deletions t/t0006-date.sh
Original file line number Diff line number Diff line change
@@ -82,4 +82,7 @@ check_approxidate 'Jun 6, 5AM' '2009-06-06 05:00:00'
check_approxidate '5AM Jun 6' '2009-06-06 05:00:00'
check_approxidate '6AM, June 7, 2009' '2009-06-07 06:00:00'

check_approxidate '2008-12-01' '2008-12-01 19:20:00'
check_approxidate '2009-12-01' '2009-12-01 19:20:00'

test_done