Skip to content

Commit

Permalink
Merge part of 'lt/rev-list' into 'fk/blame'
Browse files Browse the repository at this point in the history
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 <junkio@cox.net>
  • Loading branch information
Junio C Hamano committed Mar 2, 2006
2 parents cbfb73d + 765ac8e commit c406104
Show file tree
Hide file tree
Showing 80 changed files with 5,881 additions and 2,342 deletions.
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ GIT-VERSION-FILE
git
git-add
git-am
git-annotate
git-apply
git-applymbox
git-applypatch
Expand All @@ -22,6 +23,7 @@ git-convert-objects
git-count-objects
git-cvsexportcommit
git-cvsimport
git-cvsserver
git-daemon
git-diff
git-diff-files
Expand Down Expand Up @@ -53,13 +55,15 @@ git-mailsplit
git-merge
git-merge-base
git-merge-index
git-merge-tree
git-merge-octopus
git-merge-one-file
git-merge-ours
git-merge-recursive
git-merge-resolve
git-merge-stupid
git-mktag
git-mktree
git-name-rev
git-mv
git-pack-redundant
Expand All @@ -84,6 +88,7 @@ git-resolve
git-rev-list
git-rev-parse
git-revert
git-rm
git-send-email
git-send-pack
git-sh-setup
Expand Down
7 changes: 6 additions & 1 deletion Documentation/git-add.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ git-add - Add files to the index file.

SYNOPSIS
--------
'git-add' [-n] [-v] <file>...
'git-add' [-n] [-v] [--] <file>...

DESCRIPTION
-----------
Expand All @@ -26,6 +26,11 @@ OPTIONS
-v::
Be verbose.

--::
This option can be used to separate command-line options from
the list of files, (useful when filenames might be mistaken
for command-line options).


DISCUSSION
----------
Expand Down
89 changes: 89 additions & 0 deletions Documentation/git-cvsserver.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
git-cvsserver(1)
================

NAME
----
git-cvsserver - A CVS server emulator for git


SYNOPSIS
--------
[verse]
export CVS_SERVER=git-cvsserver
'cvs' -d :ext:user@server/path/repo.git co <HEAD_name>


DESCRIPTION
-----------

This application is a CVS emulation layer for git.

It is highly functional. However, not all methods are implemented,
and for those methods that are implemented,
not all switches are implemented.

Testing has been done using both the CLI CVS client, and the Eclipse CVS
plugin. Most functionality works fine with both of these clients.

LIMITATIONS
-----------
Currently gitcvs only works over ssh connections.


INSTALLATION
------------
1. Put server.pl somewhere useful on the same machine that is hosting your git repos

2. For each repo that you want accessible from CVS you need to edit config in
the repo and add the following section.

[gitcvs]
enabled=1
logfile=/path/to/logfile

n.b. you need to ensure each user that is going to invoke server.pl has
write access to the log file.

5. On each client machine you need to set the following variables.
CVSROOT should be set as per normal, but the directory should point at the
appropriate git repo.
CVS_SERVER should be set to the server.pl script that has been put on the
remote machine.

6. Clients should now be able to check out modules (where modules are the names
of branches in git).
$ cvs co -d mylocaldir master

Operations supported
--------------------

All the operations required for normal use are supported, including
checkout, diff, status, update, log, add, remove, commit.
Legacy monitoring operations are not supported (edit, watch and related).
Exports and tagging (tags and branches) are not supported at this stage.

The server will set the -k mode to binary when relevant. In proper GIT
tradition, the contents of the files are always respected.
No keyword expansion or newline munging is supported.

Dependencies
------------

git-cvsserver depends on DBD::SQLite.

Copyright and Authors
---------------------

This program is copyright The Open University UK - 2006.

Authors: Martyn Smith <martyn@catalyst.net.nz>
Martin Langhoff <martin@catalyst.net.nz>
with ideas and patches from participants of the git-list <git@vger.kernel.org>.

Documentation
--------------
Documentation by Martyn Smith <martyn@catalyst.net.nz> and Martin Langhoff <martin@catalyst.net.nz>Matthias Urlichs <smurf@smurf.noris.de>.

GIT
---
Part of the gitlink:git[7] suite
12 changes: 11 additions & 1 deletion Documentation/git-ls-files.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,14 @@ git-ls-files - Information about files in the index/working directory

SYNOPSIS
--------
'git-ls-files' [-z] [-t]
[verse]
'git-ls-files' [-z] [-t] [-v]
(--[cached|deleted|others|ignored|stage|unmerged|killed|modified])\*
(-[c|d|o|i|s|u|k|m])\*
[-x <pattern>|--exclude=<pattern>]
[-X <file>|--exclude-from=<file>]
[--exclude-per-directory=<file>]
[--error-unmatch]
[--full-name] [--] [<file>]\*

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

--error-unmatch::
If any <file> does not appear in the index, treat this as an
error (return 1).

-t::
Identify the file status with the following tags (followed by
a space) at the start of each line:
Expand All @@ -82,6 +88,10 @@ OPTIONS
K:: to be killed
?:: other

-v::
Similar to `-t`, but use lowercase letters for files
that are marked as 'always matching index'.

--full-name::
When run from a subdirectory, the command usually
outputs paths relative to the current directory. This
Expand Down
21 changes: 20 additions & 1 deletion Documentation/git-pack-objects.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,10 @@ git-pack-objects - Create a packed archive of objects.

SYNOPSIS
--------
'git-pack-objects' [--non-empty] [--local] [--incremental] [--window=N] [--depth=N] {--stdout | base-name} < object-list
[verse]
'git-pack-objects' [-q] [--no-reuse-delta] [--non-empty]
[--local] [--incremental] [--window=N] [--depth=N]
{--stdout | base-name} < object-list


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

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


OPTIONS
-------
Expand Down Expand Up @@ -74,6 +81,18 @@ base-name::
Only create a packed archive if it would contain at
least one object.

-q::
This flag makes the command not to report its progress
on the standard error stream.

--no-reuse-delta::
When creating a packed archive in a repository that
has existing packs, the command reuses existing deltas.
This sometimes results in a slightly suboptimal pack.
This flag tells the command not to reuse existing deltas
but compute them from scratch.


Author
------
Written by Linus Torvalds <torvalds@osdl.org>
Expand Down
6 changes: 6 additions & 0 deletions Documentation/git-push.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,12 @@ to fast forward the remote ref that matches <dst>. If
the optional plus `+` is used, the remote ref is updated
even if it does not result in a fast forward update.
+
Note: If no explicit refspec is found, (that is neither
on the command line nor in any Push line of the
corresponding remotes file---see below), then all the
refs that exist both on the local side and on the remote
side are updated.
+
Some short-cut notations are also supported.
+
* `tag <tag>` means the same as `refs/tags/<tag>:refs/tags/<tag>`.
Expand Down
44 changes: 42 additions & 2 deletions Documentation/git-rebase.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,54 @@ git-rebase - Rebase local commits to new upstream head.

SYNOPSIS
--------
'git-rebase' <upstream> [<head>]
'git-rebase' [--onto <newbase>] <upstream> [<branch>]

DESCRIPTION
-----------
Rebases local commits to the new head of the upstream tree.
git-rebase applies to <upstream> (or optionally to <newbase>) commits
from <branch> that do not appear in <upstream>. When <branch> is not
specified it defaults to the current branch (HEAD).

When git-rebase is complete, <branch> will be updated to point to the
newly created line of commit objects, so the previous line will not be
accessible unless there are other references to it already.

Assume the following history exists and the current branch is "topic":

A---B---C topic
/
D---E---F---G master

From this point, the result of the following commands:

git-rebase master
git-rebase master topic

would be:

A'--B'--C' topic
/
D---E---F---G master

While, starting from the same point, the result of the following
commands:

git-rebase --onto master~1 master
git-rebase --onto master~1 master topic

would be:

A'--B'--C' topic
/
D---E---F---G master

OPTIONS
-------
<newbase>::
Starting point at which to create the new commits. If the
--onto option is not specified, the starting point is
<upstream>.

<upstream>::
Upstream branch to compare against.

Expand Down
10 changes: 9 additions & 1 deletion Documentation/git-repack.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ objects into pack files.

SYNOPSIS
--------
'git-repack' [-a] [-d] [-l] [-n]
'git-repack' [-a] [-d] [-f] [-l] [-n] [-q]

DESCRIPTION
-----------
Expand Down Expand Up @@ -43,6 +43,14 @@ OPTIONS
Pass the `--local` option to `git pack-objects`, see
gitlink:git-pack-objects[1].

-f::
Pass the `--no-reuse-delta` option to `git pack-objects`, see
gitlink:git-pack-objects[1].

-q::
Pass the `-q` option to `git pack-objects`, see
gitlink:git-pack-objects[1].

-n::
Do not update the server information with
`git update-server-info`.
Expand Down
49 changes: 1 addition & 48 deletions Documentation/git-rev-list.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ SYNOPSIS
[ \--no-merges ]
[ \--remove-empty ]
[ \--all ]
[ [ \--merge-order [ \--show-breaks ] ] | [ \--topo-order ] ]
[ \--topo-order ]
[ \--parents ]
[ \--objects [ \--unpacked ] ]
[ \--pretty | \--header ]
Expand Down Expand Up @@ -94,57 +94,10 @@ OPTIONS
topological order (i.e. descendant commits are shown
before their parents).

--merge-order::
When specified the commit history is decomposed into a unique
sequence of minimal, non-linear epochs and maximal, linear epochs.
Non-linear epochs are then linearised by sorting them into merge
order, which is described below.
+
Maximal, linear epochs correspond to periods of sequential development.
Minimal, non-linear epochs correspond to periods of divergent development
followed by a converging merge. The theory of epochs is described in more
detail at
link:http://blackcubes.dyndns.org/epoch/[http://blackcubes.dyndns.org/epoch/].
+
The merge order for a non-linear epoch is defined as a linearisation for which
the following invariants are true:
+
1. if a commit P is reachable from commit N, commit P sorts after commit N
in the linearised list.
2. if Pi and Pj are any two parents of a merge M (with i < j), then any
commit N, such that N is reachable from Pj but not reachable from Pi,
sorts before all commits reachable from Pi.
+
Invariant 1 states that later commits appear before earlier commits they are
derived from.
+
Invariant 2 states that commits unique to "later" parents in a merge, appear
before all commits from "earlier" parents of a merge.

--show-breaks::
Each item of the list is output with a 2-character prefix consisting
of one of: (|), (^), (=) followed by a space.
+
Commits marked with (=) represent the boundaries of minimal, non-linear epochs
and correspond either to the start of a period of divergent development or to
the end of such a period.
+
Commits marked with (|) are direct parents of commits immediately preceding
the marked commit in the list.
+
Commits marked with (^) are not parents of the immediately preceding commit.
These "breaks" represent necessary discontinuities implied by trying to
represent an arbitrary DAG in a linear form.
+
`--show-breaks` is only valid if `--merge-order` is also specified.


Author
------
Written by Linus Torvalds <torvalds@osdl.org>

Original *--merge-order* logic by Jon Seymour <jon.seymour@gmail.com>

Documentation
--------------
Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.
Expand Down
Loading

0 comments on commit c406104

Please sign in to comment.