<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/commit.h, branch v0.99</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v0.99</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v0.99'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2005-07-06T17:19:04Z</updated>
<entry>
<title>[PATCH] Add a topological sort procedure to commit.c</title>
<updated>2005-07-06T17:19:04Z</updated>
<author>
<name>Jon Seymour</name>
<email>jon.seymour@gmail.com</email>
</author>
<published>2005-07-06T16:39:34Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ab580acea4b1b79daaca0c8727b810073a610e2a'/>
<id>urn:sha1:ab580acea4b1b79daaca0c8727b810073a610e2a</id>
<content type='text'>
This introduces an in-place topological sort procedure to commit.c.

Given a list of commits, sort_in_topological_order() will perform an in-place
topological sort of that list.

The invariant that applies to the resulting list is:

       a reachable from b =&gt; ord(b) &lt; ord(a)

This invariant is weaker than the --merge-order invariant, but is cheaper
to calculate (assuming the list has been identified) and will serve any
purpose where only a minimal topological order guarantee is required.

Signed-off-by: Jon Seymour &lt;jon.seymour@gmail.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>Make "insert_by_date()" match "commit_list_insert()"</title>
<updated>2005-07-06T16:31:17Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@g5.osdl.org</email>
</author>
<published>2005-07-06T16:31:17Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f755494cec27fed8c9693bb91c26762061518b0b'/>
<id>urn:sha1:f755494cec27fed8c9693bb91c26762061518b0b</id>
<content type='text'>
Same argument order, same return type.  This allows us to use a function
pointer to choose one over the other.
</content>
</entry>
<entry>
<title>Add "--pretty=full" format that also shows committer.</title>
<updated>2005-06-27T00:50:46Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@ppc970.osdl.org</email>
</author>
<published>2005-06-27T00:50:46Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9b66ec04741b4030e7654dcb7b978a29a8214b31'/>
<id>urn:sha1:9b66ec04741b4030e7654dcb7b978a29a8214b31</id>
<content type='text'>
Also move the common implementation of parsing the --pretty argument
format into commit.c rather than having duplicates in diff-tree.c and
rev-list.c.
</content>
</entry>
<entry>
<title>[PATCH] Anal retentive 'const unsigned char *sha1'</title>
<updated>2005-06-08T20:04:53Z</updated>
<author>
<name>Jason McMullan</name>
<email>jason.mcmullan@timesys.com</email>
</author>
<published>2005-06-03T15:05:39Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5d6ccf5ce7f28e576a87f6c6f4f99fae90e06db6'/>
<id>urn:sha1:5d6ccf5ce7f28e576a87f6c6f4f99fae90e06db6</id>
<content type='text'>
Make 'sha1' parameters const where possible

Signed-off-by: Jason McMullan &lt;jason.mcmullan@timesys.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] Modify git-rev-list to linearise the commit history in merge order.</title>
<updated>2005-06-06T16:07:26Z</updated>
<author>
<name>jon@blackcubes.dyndns.org</name>
<email>jon@blackcubes.dyndns.org</email>
</author>
<published>2005-06-06T15:39:40Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=a3437b8c26a63d971437c8b6ac6f6d4f632be548'/>
<id>urn:sha1:a3437b8c26a63d971437c8b6ac6f6d4f632be548</id>
<content type='text'>
This patch linearises the GIT commit history graph into merge order
which is defined by invariants specified in Documentation/git-rev-list.txt.

The linearisation produced by this patch is superior in an objective sense
to that produced by the existing git-rev-list implementation in that
the linearisation produced is guaranteed to have the minimum number of
discontinuities, where a discontinuity is defined as an adjacent pair of
commits in the output list which are not related in a direct child-parent
relationship.

With this patch a graph like this:

	a4 ---
	| \   \
	|  b4 |
	|/ |  |
	a3 |  |
	|  |  |
	a2 |  |
	|  |  c3
	|  |  |
	|  |  c2
	|  b3 |
	|  | /|
	|  b2 |
	|  |  c1
	|  | /
	|  b1
	a1 |
	|  |
	a0 |
	| /
	root

Sorts like this:

	= a4
	| c3
	| c2
	| c1
	^ b4
	| b3
	| b2
	| b1
	^ a3
	| a2
	| a1
	| a0
	= root

Instead of this:

	= a4
	| c3
	^ b4
	| a3
	^ c2
	^ b3
	^ a2
	^ b2
	^ c1
	^ a1
	^ b1
	^ a0
	= root

A test script, t/t6000-rev-list.sh, includes a test which demonstrates
that the linearisation produced by --merge-order has less discontinuities
than the linearisation produced by git-rev-list without the --merge-order
flag specified. To see this, do the following:

	cd t
	./t6000-rev-list.sh
	cd trash
	cat actual-default-order
	cat actual-merge-order

The existing behaviour of git-rev-list is preserved, by default. To obtain
the modified behaviour, specify --merge-order or --merge-order --show-breaks
on the command line.

This version of the patch has been tested on the git repository and also on the linux-2.6
repository and has reasonable performance on both - ~50-100% slower than the original algorithm.

This version of the patch has incorporated a functional equivalent of the Linus' output limiting
algorithm into the merge-order algorithm itself. This operates per the notes associated
with Linus' commit 337cb3fb8da45f10fe9a0c3cf571600f55ead2ce.

This version has incorporated Linus' feedback regarding proposed changes to rev-list.c.
(see: [PATCH] Factor out filtering in rev-list.c)

This version has improved the way sort_first_epoch marks commits as uninteresting.

For more details about this change, refer to Documentation/git-rev-list.txt
and http://blackcubes.dyndns.org/epoch/.

Signed-off-by: Jon Seymour &lt;jon.seymour@gmail.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>pretty_print_commit: add different formats</title>
<updated>2005-06-05T16:02:03Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@ppc970.osdl.org</email>
</author>
<published>2005-06-05T16:02:03Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=000182eacf99cde27d5916aa415921924b82972c'/>
<id>urn:sha1:000182eacf99cde27d5916aa415921924b82972c</id>
<content type='text'>
You can ask to print out "raw" format (full headers, full body),
"medium" format (author and date, full body) or "short" format
(author only, condensed body).

Use "git-rev-list --pretty=short HEAD | less -S" for an example.
</content>
</entry>
<entry>
<title>Add generic commit "pretty print" function.</title>
<updated>2005-06-01T15:34:23Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@ppc970.osdl.org</email>
</author>
<published>2005-06-01T15:34:23Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e3bc7a3bc7b77f44d686003f5a9346a135529f73'/>
<id>urn:sha1:e3bc7a3bc7b77f44d686003f5a9346a135529f73</id>
<content type='text'>
It's really just the header printign function from diff-tree.c,
and it's usable for other things too.
</content>
</entry>
<entry>
<title>commit_list_insert: return the new commit list entry</title>
<updated>2005-05-31T01:44:02Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@ppc970.osdl.org</email>
</author>
<published>2005-05-31T01:44:02Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=ac5155ef59a686f02e984d449476208ffe33b66d'/>
<id>urn:sha1:ac5155ef59a686f02e984d449476208ffe33b66d</id>
<content type='text'>
This is useful for when we want to insert the next one after
this new one, for example.
</content>
</entry>
<entry>
<title>Make "parse_object()" also fill in commit message buffer data.</title>
<updated>2005-05-26T02:26:28Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@ppc970.osdl.org</email>
</author>
<published>2005-05-26T02:26:28Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=bd1e17e245153fdc75feaaf5e556b922d98ca699'/>
<id>urn:sha1:bd1e17e245153fdc75feaaf5e556b922d98ca699</id>
<content type='text'>
And teach fsck to free it to save memory.
</content>
</entry>
<entry>
<title>commit: save the commit buffer off when parsing a commit</title>
<updated>2005-05-26T01:27:14Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@ppc970.osdl.org</email>
</author>
<published>2005-05-26T01:27:14Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=3ff1fbbb9446e03050047a67247151887ee59e70'/>
<id>urn:sha1:3ff1fbbb9446e03050047a67247151887ee59e70</id>
<content type='text'>
object.

A fair number of the users potentially want to look at the
commit objects more closely, and if you worry about memory
leaking in certain applications, you can always do a

	free(commit-&gt;buffer);
	commit-&gt;buffer = NULL;

by hand after parsing them.
</content>
</entry>
</feed>
