List for cgit developers and users
 help / color / mirror / Atom feed
* [PATCH 0/3] Update to Git 2.0.3
@ 2014-07-27 10:56 john
  2014-07-27 10:56 ` [PATCH 1/3] parsing.c: make commit buffer const john
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: john @ 2014-07-27 10:56 UTC (permalink / raw)


This isn't as simple as just bumping the version number because the
"buffer" field has been removed from "struct commit" so we need to
change all of the places that use it to use the new wrapper functions.

The first commit is a preparatory change because the new access function
returns a pointer-to-const where the "buffer" field was previously just
a "char *".  The middle commit is the real change and the final one is
just an unrelated fix I noticed while in the area.

John Keeping (3):
  parsing.c: make commit buffer const
  git: update to v2.0.3
  ui-stats.c: set parent pointer to NULL after freeing it

 Makefile   | 2 +-
 git        | 2 +-
 parsing.c  | 9 +++++----
 ui-atom.c  | 3 +--
 ui-log.c   | 6 ++----
 ui-stats.c | 3 ++-
 6 files changed, 12 insertions(+), 13 deletions(-)

-- 
2.0.1.472.g6f92e5f.dirty



^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/3] parsing.c: make commit buffer const
  2014-07-27 10:56 [PATCH 0/3] Update to Git 2.0.3 john
@ 2014-07-27 10:56 ` john
  2014-07-27 10:56 ` [PATCH 2/3] git: update to v2.0.3 john
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: john @ 2014-07-27 10:56 UTC (permalink / raw)


This will be required in order to incorporate the changes to commit
buffer handling in Git 2.0.2.

Signed-off-by: John Keeping <john at keeping.me.uk>
---
 parsing.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/parsing.c b/parsing.c
index 073f46f..edb3416 100644
--- a/parsing.c
+++ b/parsing.c
@@ -69,9 +69,9 @@ static char *substr(const char *head, const char *tail)
 	return buf;
 }
 
-static char *parse_user(char *t, char **name, char **email, unsigned long *date)
+static const char *parse_user(const char *t, char **name, char **email, unsigned long *date)
 {
-	char *p = t;
+	const char *p = t;
 	int mode = 1;
 
 	while (p && *p) {
@@ -132,7 +132,7 @@ static const char *reencode(char **txt, const char *src_enc, const char *dst_enc
 struct commitinfo *cgit_parse_commit(struct commit *commit)
 {
 	struct commitinfo *ret;
-	char *p = commit->buffer, *t;
+	const char *p = commit->buffer, *t;
 
 	ret = xmalloc(sizeof(*ret));
 	ret->commit = commit;
@@ -223,7 +223,7 @@ struct taginfo *cgit_parse_tag(struct tag *tag)
 	void *data;
 	enum object_type type;
 	unsigned long size;
-	char *p;
+	const char *p;
 	struct taginfo *ret;
 
 	data = read_sha1_file(tag->object.sha1, &type, &size);
-- 
2.0.1.472.g6f92e5f.dirty



^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 2/3] git: update to v2.0.3
  2014-07-27 10:56 [PATCH 0/3] Update to Git 2.0.3 john
  2014-07-27 10:56 ` [PATCH 1/3] parsing.c: make commit buffer const john
@ 2014-07-27 10:56 ` john
  2014-07-27 10:56 ` [PATCH 3/3] ui-stats.c: set parent pointer to NULL after freeing it john
  2014-07-27 23:59 ` [PATCH 0/3] Update to Git 2.0.3 Jason
  3 siblings, 0 replies; 5+ messages in thread
From: john @ 2014-07-27 10:56 UTC (permalink / raw)


This is slightly more involved than just bumping the version number
because it pulls in a change to convert the commit buffer to a slab,
removing the "buffer" field from "struct commit".  All sites that access
"commit->buffer" have been changed to use the new functions provided for
this purpose.

Signed-off-by: John Keeping <john at keeping.me.uk>
---
 Makefile   | 2 +-
 git        | 2 +-
 parsing.c  | 3 ++-
 ui-atom.c  | 3 +--
 ui-log.c   | 6 ++----
 ui-stats.c | 2 +-
 6 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/Makefile b/Makefile
index bf8be02..93b525a 100644
--- a/Makefile
+++ b/Makefile
@@ -14,7 +14,7 @@ htmldir = $(docdir)
 pdfdir = $(docdir)
 mandir = $(prefix)/share/man
 SHA1_HEADER = <openssl/sha.h>
-GIT_VER = 2.0.1
+GIT_VER = 2.0.3
 GIT_URL = https://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.gz
 INSTALL = install
 COPYTREE = cp -r
diff --git a/git b/git
index 341e7e8..740c281 160000
--- a/git
+++ b/git
@@ -1 +1 @@
-Subproject commit 341e7e8eda3dbeb6867f4f8f45b671201b807de5
+Subproject commit 740c281d21ef5b27f6f1b942a4f2fc20f51e8c7e
diff --git a/parsing.c b/parsing.c
index edb3416..3dbd122 100644
--- a/parsing.c
+++ b/parsing.c
@@ -132,7 +132,8 @@ static const char *reencode(char **txt, const char *src_enc, const char *dst_enc
 struct commitinfo *cgit_parse_commit(struct commit *commit)
 {
 	struct commitinfo *ret;
-	const char *p = commit->buffer, *t;
+	const char *p = get_cached_commit_buffer(commit, NULL);
+	const char *t;
 
 	ret = xmalloc(sizeof(*ret));
 	ret->commit = commit;
diff --git a/ui-atom.c b/ui-atom.c
index b22d745..e2b39ee 100644
--- a/ui-atom.c
+++ b/ui-atom.c
@@ -133,8 +133,7 @@ void cgit_print_atom(char *tip, char *path, int max_count)
 	}
 	while ((commit = get_revision(&rev)) != NULL) {
 		add_entry(commit, host);
-		free(commit->buffer);
-		commit->buffer = NULL;
+		free_commit_buffer(commit);
 		free_commit_list(commit->parents);
 		commit->parents = NULL;
 	}
diff --git a/ui-log.c b/ui-log.c
index b5846e4..bcdb666 100644
--- a/ui-log.c
+++ b/ui-log.c
@@ -388,16 +388,14 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern
 		ofs = 0;
 
 	for (i = 0; i < ofs && (commit = get_revision(&rev)) != NULL; i++) {
-		free(commit->buffer);
-		commit->buffer = NULL;
+		free_commit_buffer(commit);
 		free_commit_list(commit->parents);
 		commit->parents = NULL;
 	}
 
 	for (i = 0; i < cnt && (commit = get_revision(&rev)) != NULL; i++) {
 		print_commit(commit, &rev);
-		free(commit->buffer);
-		commit->buffer = NULL;
+		free_commit_buffer(commit);
 		free_commit_list(commit->parents);
 		commit->parents = NULL;
 	}
diff --git a/ui-stats.c b/ui-stats.c
index bc27308..6f13c32 100644
--- a/ui-stats.c
+++ b/ui-stats.c
@@ -244,7 +244,7 @@ static struct string_list collect_stats(struct cgit_period *period)
 	memset(&authors, 0, sizeof(authors));
 	while ((commit = get_revision(&rev)) != NULL) {
 		add_commit(&authors, commit, period);
-		free(commit->buffer);
+		free_commit_buffer(commit);
 		free_commit_list(commit->parents);
 	}
 	return authors;
-- 
2.0.1.472.g6f92e5f.dirty



^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 3/3] ui-stats.c: set parent pointer to NULL after freeing it
  2014-07-27 10:56 [PATCH 0/3] Update to Git 2.0.3 john
  2014-07-27 10:56 ` [PATCH 1/3] parsing.c: make commit buffer const john
  2014-07-27 10:56 ` [PATCH 2/3] git: update to v2.0.3 john
@ 2014-07-27 10:56 ` john
  2014-07-27 23:59 ` [PATCH 0/3] Update to Git 2.0.3 Jason
  3 siblings, 0 replies; 5+ messages in thread
From: john @ 2014-07-27 10:56 UTC (permalink / raw)


We do this everywhere else, so we should be doing it here as well.

Signed-off-by: John Keeping <john at keeping.me.uk>
---
 ui-stats.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/ui-stats.c b/ui-stats.c
index 6f13c32..a264f6a 100644
--- a/ui-stats.c
+++ b/ui-stats.c
@@ -246,6 +246,7 @@ static struct string_list collect_stats(struct cgit_period *period)
 		add_commit(&authors, commit, period);
 		free_commit_buffer(commit);
 		free_commit_list(commit->parents);
+		commit->parents = NULL;
 	}
 	return authors;
 }
-- 
2.0.1.472.g6f92e5f.dirty



^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 0/3] Update to Git 2.0.3
  2014-07-27 10:56 [PATCH 0/3] Update to Git 2.0.3 john
                   ` (2 preceding siblings ...)
  2014-07-27 10:56 ` [PATCH 3/3] ui-stats.c: set parent pointer to NULL after freeing it john
@ 2014-07-27 23:59 ` Jason
  3 siblings, 0 replies; 5+ messages in thread
From: Jason @ 2014-07-27 23:59 UTC (permalink / raw)


Applied this series. Thanks John.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.zx2c4.com/pipermail/cgit/attachments/20140728/2e457b50/attachment.html>


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-07-27 23:59 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-07-27 10:56 [PATCH 0/3] Update to Git 2.0.3 john
2014-07-27 10:56 ` [PATCH 1/3] parsing.c: make commit buffer const john
2014-07-27 10:56 ` [PATCH 2/3] git: update to v2.0.3 john
2014-07-27 10:56 ` [PATCH 3/3] ui-stats.c: set parent pointer to NULL after freeing it john
2014-07-27 23:59 ` [PATCH 0/3] Update to Git 2.0.3 Jason

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).