Skip to content

Commit c406104

Browse files
author
Junio C Hamano
committed
Merge part of 'lt/rev-list' into 'fk/blame'
Now blame will depend on the new revision walker infrastructure, we need to make it depend on earlier parts of Linus' rev-list topic branch, hence this merge. Signed-off-by: Junio C Hamano <[email protected]>
2 parents cbfb73d + 765ac8e commit c406104

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

80 files changed

+5881
-2342
lines changed

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ GIT-VERSION-FILE
22
git
33
git-add
44
git-am
5+
git-annotate
56
git-apply
67
git-applymbox
78
git-applypatch
@@ -22,6 +23,7 @@ git-convert-objects
2223
git-count-objects
2324
git-cvsexportcommit
2425
git-cvsimport
26+
git-cvsserver
2527
git-daemon
2628
git-diff
2729
git-diff-files
@@ -53,13 +55,15 @@ git-mailsplit
5355
git-merge
5456
git-merge-base
5557
git-merge-index
58+
git-merge-tree
5659
git-merge-octopus
5760
git-merge-one-file
5861
git-merge-ours
5962
git-merge-recursive
6063
git-merge-resolve
6164
git-merge-stupid
6265
git-mktag
66+
git-mktree
6367
git-name-rev
6468
git-mv
6569
git-pack-redundant
@@ -84,6 +88,7 @@ git-resolve
8488
git-rev-list
8589
git-rev-parse
8690
git-revert
91+
git-rm
8792
git-send-email
8893
git-send-pack
8994
git-sh-setup

Documentation/git-add.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ git-add - Add files to the index file.
77

88
SYNOPSIS
99
--------
10-
'git-add' [-n] [-v] <file>...
10+
'git-add' [-n] [-v] [--] <file>...
1111

1212
DESCRIPTION
1313
-----------
@@ -26,6 +26,11 @@ OPTIONS
2626
-v::
2727
Be verbose.
2828

29+
--::
30+
This option can be used to separate command-line options from
31+
the list of files, (useful when filenames might be mistaken
32+
for command-line options).
33+
2934

3035
DISCUSSION
3136
----------

Documentation/git-cvsserver.txt

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
git-cvsserver(1)
2+
================
3+
4+
NAME
5+
----
6+
git-cvsserver - A CVS server emulator for git
7+
8+
9+
SYNOPSIS
10+
--------
11+
[verse]
12+
export CVS_SERVER=git-cvsserver
13+
'cvs' -d :ext:user@server/path/repo.git co <HEAD_name>
14+
15+
16+
DESCRIPTION
17+
-----------
18+
19+
This application is a CVS emulation layer for git.
20+
21+
It is highly functional. However, not all methods are implemented,
22+
and for those methods that are implemented,
23+
not all switches are implemented.
24+
25+
Testing has been done using both the CLI CVS client, and the Eclipse CVS
26+
plugin. Most functionality works fine with both of these clients.
27+
28+
LIMITATIONS
29+
-----------
30+
Currently gitcvs only works over ssh connections.
31+
32+
33+
INSTALLATION
34+
------------
35+
1. Put server.pl somewhere useful on the same machine that is hosting your git repos
36+
37+
2. For each repo that you want accessible from CVS you need to edit config in
38+
the repo and add the following section.
39+
40+
[gitcvs]
41+
enabled=1
42+
logfile=/path/to/logfile
43+
44+
n.b. you need to ensure each user that is going to invoke server.pl has
45+
write access to the log file.
46+
47+
5. On each client machine you need to set the following variables.
48+
CVSROOT should be set as per normal, but the directory should point at the
49+
appropriate git repo.
50+
CVS_SERVER should be set to the server.pl script that has been put on the
51+
remote machine.
52+
53+
6. Clients should now be able to check out modules (where modules are the names
54+
of branches in git).
55+
$ cvs co -d mylocaldir master
56+
57+
Operations supported
58+
--------------------
59+
60+
All the operations required for normal use are supported, including
61+
checkout, diff, status, update, log, add, remove, commit.
62+
Legacy monitoring operations are not supported (edit, watch and related).
63+
Exports and tagging (tags and branches) are not supported at this stage.
64+
65+
The server will set the -k mode to binary when relevant. In proper GIT
66+
tradition, the contents of the files are always respected.
67+
No keyword expansion or newline munging is supported.
68+
69+
Dependencies
70+
------------
71+
72+
git-cvsserver depends on DBD::SQLite.
73+
74+
Copyright and Authors
75+
---------------------
76+
77+
This program is copyright The Open University UK - 2006.
78+
79+
Authors: Martyn Smith <[email protected]>
80+
Martin Langhoff <[email protected]>
81+
with ideas and patches from participants of the git-list <[email protected]>.
82+
83+
Documentation
84+
--------------
85+
Documentation by Martyn Smith <[email protected]> and Martin Langhoff <[email protected]>Matthias Urlichs <[email protected]>.
86+
87+
GIT
88+
---
89+
Part of the gitlink:git[7] suite

Documentation/git-ls-files.txt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@ git-ls-files - Information about files in the index/working directory
88

99
SYNOPSIS
1010
--------
11-
'git-ls-files' [-z] [-t]
11+
[verse]
12+
'git-ls-files' [-z] [-t] [-v]
1213
(--[cached|deleted|others|ignored|stage|unmerged|killed|modified])\*
1314
(-[c|d|o|i|s|u|k|m])\*
1415
[-x <pattern>|--exclude=<pattern>]
1516
[-X <file>|--exclude-from=<file>]
1617
[--exclude-per-directory=<file>]
18+
[--error-unmatch]
1719
[--full-name] [--] [<file>]\*
1820

1921
DESCRIPTION
@@ -72,6 +74,10 @@ OPTIONS
7274
read additional exclude patterns that apply only to the
7375
directory and its subdirectories in <file>.
7476

77+
--error-unmatch::
78+
If any <file> does not appear in the index, treat this as an
79+
error (return 1).
80+
7581
-t::
7682
Identify the file status with the following tags (followed by
7783
a space) at the start of each line:
@@ -82,6 +88,10 @@ OPTIONS
8288
K:: to be killed
8389
?:: other
8490

91+
-v::
92+
Similar to `-t`, but use lowercase letters for files
93+
that are marked as 'always matching index'.
94+
8595
--full-name::
8696
When run from a subdirectory, the command usually
8797
outputs paths relative to the current directory. This

Documentation/git-pack-objects.txt

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ git-pack-objects - Create a packed archive of objects.
88

99
SYNOPSIS
1010
--------
11-
'git-pack-objects' [--non-empty] [--local] [--incremental] [--window=N] [--depth=N] {--stdout | base-name} < object-list
11+
[verse]
12+
'git-pack-objects' [-q] [--no-reuse-delta] [--non-empty]
13+
[--local] [--incremental] [--window=N] [--depth=N]
14+
{--stdout | base-name} < object-list
1215

1316

1417
DESCRIPTION
@@ -32,6 +35,10 @@ Placing both in the pack/ subdirectory of $GIT_OBJECT_DIRECTORY (or
3235
any of the directories on $GIT_ALTERNATE_OBJECT_DIRECTORIES)
3336
enables git to read from such an archive.
3437

38+
In a packed archive, an object is either stored as a compressed
39+
whole, or as a difference from some other object. The latter is
40+
often called a delta.
41+
3542

3643
OPTIONS
3744
-------
@@ -74,6 +81,18 @@ base-name::
7481
Only create a packed archive if it would contain at
7582
least one object.
7683

84+
-q::
85+
This flag makes the command not to report its progress
86+
on the standard error stream.
87+
88+
--no-reuse-delta::
89+
When creating a packed archive in a repository that
90+
has existing packs, the command reuses existing deltas.
91+
This sometimes results in a slightly suboptimal pack.
92+
This flag tells the command not to reuse existing deltas
93+
but compute them from scratch.
94+
95+
7796
Author
7897
------
7998
Written by Linus Torvalds <[email protected]>

Documentation/git-push.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,12 @@ to fast forward the remote ref that matches <dst>. If
4343
the optional plus `+` is used, the remote ref is updated
4444
even if it does not result in a fast forward update.
4545
+
46+
Note: If no explicit refspec is found, (that is neither
47+
on the command line nor in any Push line of the
48+
corresponding remotes file---see below), then all the
49+
refs that exist both on the local side and on the remote
50+
side are updated.
51+
+
4652
Some short-cut notations are also supported.
4753
+
4854
* `tag <tag>` means the same as `refs/tags/<tag>:refs/tags/<tag>`.

Documentation/git-rebase.txt

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,54 @@ git-rebase - Rebase local commits to new upstream head.
77

88
SYNOPSIS
99
--------
10-
'git-rebase' <upstream> [<head>]
10+
'git-rebase' [--onto <newbase>] <upstream> [<branch>]
1111

1212
DESCRIPTION
1313
-----------
14-
Rebases local commits to the new head of the upstream tree.
14+
git-rebase applies to <upstream> (or optionally to <newbase>) commits
15+
from <branch> that do not appear in <upstream>. When <branch> is not
16+
specified it defaults to the current branch (HEAD).
17+
18+
When git-rebase is complete, <branch> will be updated to point to the
19+
newly created line of commit objects, so the previous line will not be
20+
accessible unless there are other references to it already.
21+
22+
Assume the following history exists and the current branch is "topic":
23+
24+
A---B---C topic
25+
/
26+
D---E---F---G master
27+
28+
From this point, the result of the following commands:
29+
30+
git-rebase master
31+
git-rebase master topic
32+
33+
would be:
34+
35+
A'--B'--C' topic
36+
/
37+
D---E---F---G master
38+
39+
While, starting from the same point, the result of the following
40+
commands:
41+
42+
git-rebase --onto master~1 master
43+
git-rebase --onto master~1 master topic
44+
45+
would be:
46+
47+
A'--B'--C' topic
48+
/
49+
D---E---F---G master
1550

1651
OPTIONS
1752
-------
53+
<newbase>::
54+
Starting point at which to create the new commits. If the
55+
--onto option is not specified, the starting point is
56+
<upstream>.
57+
1858
<upstream>::
1959
Upstream branch to compare against.
2060

Documentation/git-repack.txt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ objects into pack files.
99

1010
SYNOPSIS
1111
--------
12-
'git-repack' [-a] [-d] [-l] [-n]
12+
'git-repack' [-a] [-d] [-f] [-l] [-n] [-q]
1313

1414
DESCRIPTION
1515
-----------
@@ -43,6 +43,14 @@ OPTIONS
4343
Pass the `--local` option to `git pack-objects`, see
4444
gitlink:git-pack-objects[1].
4545

46+
-f::
47+
Pass the `--no-reuse-delta` option to `git pack-objects`, see
48+
gitlink:git-pack-objects[1].
49+
50+
-q::
51+
Pass the `-q` option to `git pack-objects`, see
52+
gitlink:git-pack-objects[1].
53+
4654
-n::
4755
Do not update the server information with
4856
`git update-server-info`.

Documentation/git-rev-list.txt

Lines changed: 1 addition & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ SYNOPSIS
1616
[ \--no-merges ]
1717
[ \--remove-empty ]
1818
[ \--all ]
19-
[ [ \--merge-order [ \--show-breaks ] ] | [ \--topo-order ] ]
19+
[ \--topo-order ]
2020
[ \--parents ]
2121
[ \--objects [ \--unpacked ] ]
2222
[ \--pretty | \--header ]
@@ -94,57 +94,10 @@ OPTIONS
9494
topological order (i.e. descendant commits are shown
9595
before their parents).
9696

97-
--merge-order::
98-
When specified the commit history is decomposed into a unique
99-
sequence of minimal, non-linear epochs and maximal, linear epochs.
100-
Non-linear epochs are then linearised by sorting them into merge
101-
order, which is described below.
102-
+
103-
Maximal, linear epochs correspond to periods of sequential development.
104-
Minimal, non-linear epochs correspond to periods of divergent development
105-
followed by a converging merge. The theory of epochs is described in more
106-
detail at
107-
link:http://blackcubes.dyndns.org/epoch/[http://blackcubes.dyndns.org/epoch/].
108-
+
109-
The merge order for a non-linear epoch is defined as a linearisation for which
110-
the following invariants are true:
111-
+
112-
1. if a commit P is reachable from commit N, commit P sorts after commit N
113-
in the linearised list.
114-
2. if Pi and Pj are any two parents of a merge M (with i < j), then any
115-
commit N, such that N is reachable from Pj but not reachable from Pi,
116-
sorts before all commits reachable from Pi.
117-
+
118-
Invariant 1 states that later commits appear before earlier commits they are
119-
derived from.
120-
+
121-
Invariant 2 states that commits unique to "later" parents in a merge, appear
122-
before all commits from "earlier" parents of a merge.
123-
124-
--show-breaks::
125-
Each item of the list is output with a 2-character prefix consisting
126-
of one of: (|), (^), (=) followed by a space.
127-
+
128-
Commits marked with (=) represent the boundaries of minimal, non-linear epochs
129-
and correspond either to the start of a period of divergent development or to
130-
the end of such a period.
131-
+
132-
Commits marked with (|) are direct parents of commits immediately preceding
133-
the marked commit in the list.
134-
+
135-
Commits marked with (^) are not parents of the immediately preceding commit.
136-
These "breaks" represent necessary discontinuities implied by trying to
137-
represent an arbitrary DAG in a linear form.
138-
+
139-
`--show-breaks` is only valid if `--merge-order` is also specified.
140-
141-
14297
Author
14398
------
14499
Written by Linus Torvalds <[email protected]>
145100

146-
Original *--merge-order* logic by Jon Seymour <[email protected]>
147-
148101
Documentation
149102
--------------
150103
Documentation by David Greaves, Junio C Hamano and the git-list <[email protected]>.

0 commit comments

Comments
 (0)