Commit 46f35127b6fcfab87cb80d1b772ac7c662eafd38

Carlos Martín Nieto 2018-09-17T14:39:58

revwalk: use the max value for a signed integer When porting, we overlooked that the difference between git's and our's time representation and copied their way of getting the max value. Unfortunately git was using unsigned integers, so `~0ll` does correspond to their max value, whereas for us it corresponds to `-1`. This means that we always consider the last date to be smaller than the current commit's and always think commits are interesting. Change the initial value to the macro that gives us the maximum value on each platform so we can accurately consider commits interesting or not.

1
2
3
4
5
6
7
8
9
10
11
12
13
diff --git a/src/revwalk.c b/src/revwalk.c
index da84a44..d6c6fdb 100644
--- a/src/revwalk.c
+++ b/src/revwalk.c
@@ -405,7 +405,7 @@ static int still_interesting(git_commit_list *list, int64_t time, int slop)
 static int limit_list(git_commit_list **out, git_revwalk *walk, git_commit_list *commits)
 {
 	int error, slop = SLOP;
-	int64_t time = ~0ll;
+	int64_t time = INT64_MAX;
 	git_commit_list *list = commits;
 	git_commit_list *newlist = NULL;
 	git_commit_list **p = &newlist;