1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-11-06 17:23:00 +01:00
Commit graph

2992 commits

Author SHA1 Message Date
Junio C Hamano
157dc07368 merge-recursive: cleanup setIndexStages
Fredrik points out there is a useful wrapper runProgram() used
everywhere that we can use to feed input into subprocess.  Use
it to catch errors from the subprocess; it is a good cleanup as
well.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-11 01:55:52 -08:00
Junio C Hamano
28e77a8164 merge-recursive: leave unmerged entries in the index.
This does two things.

 - When one branch renamed and the other branch did not, the
   resulting half-merged file in the working tree used to swap
   branches around and showed as if renaming side was "ours".
   This was confusing and inconsistent (even though the conflict
   markers were marked with branch names, it was not a good
   enough excuse).  This changes the order of arguments to
   mergeFile in such a case to make sure we always see "our"
   change between <<< and ===, and "their" change between ===
   and >>>.

 - When both branches renamed to the same path, and when one
   branch renamed and the other branch did not, we attempt
   mergeFile.  When this automerge conflicted, we used to
   collapse the index.  Now we use update-index --index-info
   to inject higher stage entries to leave the index in unmerged
   state for these two cases.

What this still does _not_ do is to inject unmerged state into
the index when the structural changes conflict.  I have not
thought things through what to do in each case yet, but the
cases this commit cover are the most common ones, so this would
be a good start.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-11 01:47:15 -08:00
Junio C Hamano
7564577a6c format-patch: use same number of digits in numbers
This would help sorting by subject in MUA work saner even though
MUA is too dumb to attempt sorting numbered subjects sanely.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-10 22:22:35 -08:00
Junio C Hamano
eea420693b t0000: catch trivial pilot errors.
People seem to be getting test failure from t6021 not becuase
git is faulty but because they forgot to install "merge".  Check
this and other trivial pilot errors in the first test.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-10 20:55:32 -08:00
Junio C Hamano
73ab46d6d0 t3300: funny name test
Add double quote character to the test pattern.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-10 19:00:24 -08:00
Daniel Barkalow
024510c8d9 Allow saving an object from a pipe
In order to support getting data into git with scripts, this adds a
--stdin option to git-hash-object, which will make it read from stdin.

Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-10 18:57:57 -08:00
Eric Wong
10945e006a archimport: fix a in new changeset applyer addition
Fix a stupid bug I introduced when splitting the
accurate and fast changeset appliers.

Also, remove an old debugging statement I added

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Martin Langhoff <martin@catalyst.net.nz>
2005-12-11 14:41:40 +13:00
Eric Wong
6e33101abd archimport: Fix a bug I introduced in the new log parser
This fixes the case (that worked originally in Martin's version)
where the only new/modified files are Arch control files.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Martin Langhoff <martin@catalyst.net.nz>
2005-12-11 14:41:40 +13:00
Eric Wong
3e525e6738 archimport: Add the accurate changeset applyer
And make it the default.
This includes stats tracking to verbose mode

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Martin Langhoff <martin@catalyst.net.nz>
2005-12-11 14:41:40 +13:00
Eric Wong
6df896b50a archimport: safer log file parsing
Better logfile parsing, no longer confused by 'headers' after the first
blank line.

Re-enabled tag-reading with abrowse (baz and tla compatible)

Remove need to quote args to external processes

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Martin Langhoff <martin@catalyst.net.nz>
2005-12-11 14:41:40 +13:00
Eric Wong
42f44b08bc archimport: add -D <depth> and -a switch
add -D <depth> option to abrowse add -a switch to attempt to
auto-register archives at mirrors.sourcecontrol.net

(ML: Also removes some std libraries no longer in use)

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Martin Langhoff <martin@catalyst.net.nz>
2005-12-11 14:41:40 +13:00
Eric Wong
1136fb5284 archimport: remove git wrapper dependency
use git-diff-files instead of git diff-files so we don't rely on the
wrapper being installed (some people may have git as GNU interactive
tools :)

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Martin Langhoff <martin@catalyst.net.nz>
2005-12-11 14:41:40 +13:00
Eric Wong
5744f27794 archimport: fix -t tmpdir switch
set TMPDIR env correctly if -t <tmpdir> is passed from the command-line.
setting TMPDIR => 1 as an argument to tempdir() has no effect otherwise

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Martin Langhoff <martin@catalyst.net.nz>
2005-12-11 14:41:40 +13:00
Eric Wong
f88961a85f archimport: remove String::ShellQuote dependency.
use safe_pipe_capture() or system() over backticks where
shellquoting may have been necessary.
More changes planned, so I'm not touching the parts I'm
planning on replacing entirely.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Martin Langhoff <martin@catalyst.net.nz>
2005-12-11 14:41:39 +13:00
Eric Wong
2777ef76be archimport: first, make sure it still compiles
(ML: And introduce safe_pipe_capture())

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Martin Langhoff <martin@catalyst.net.nz>
2005-12-11 14:41:39 +13:00
Junio C Hamano
8b15e2fbc9 Link Everyday GIT to main documentation tree.
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-09 23:41:03 -08:00
Junio C Hamano
db9536c856 Everyday GIT with 20 commands
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-09 23:07:29 -08:00
Junio C Hamano
10b94e283a Use GIT_EXEC_PATH explicitly for initial git-init-db in tests.
This is just a belts-and-suspenders check, but makes sure we
have both "git" and "git-init-db" built, executable, and
checking.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-09 17:32:18 -08:00
Alex Riesen
0f737464a6 use "git init-db" in tests
This is to catch an error where tests are run without first
building what are being tested.  Relying on prefixing $PATH with
the build directory and expect that the PATH mechanism would
find what we just built would silently run an already installed
binaries from the PATH.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-09 12:51:04 -08:00
Junio C Hamano
2b86976bfd git-prune: never lose objects reachable from our refs.
Explicit <head> arguments to git-prune replaces, instead of
extends, the list of heads used for reachability analysis by
fsck-objects.  By giving a subset of heads by mistake, objects
reachable only from other heads can be removed, resulting in a
corrupted repository.

This commit stops replacing the list of heads, and makes the
command line arguments to add to them instead for safety.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-08 23:18:41 -08:00
Junio C Hamano
2dee581667 qsort(): ptrdiff_t may be larger than int
This is a companion patch to e23eff8be9
commit.  The same logic, the same rationale that a comparison
function that returns an int should not just compute a ptrdiff_t
and return it.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-08 17:29:11 -08:00
Junio C Hamano
c82365dc6f Documentation: git-prune
Not replacing but always including our own refs may be more
desirable (and unarguably much safer), but at the same time I
have a suspicion that that might be forbidding a useful usage I
haven't thought of, so...

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-08 16:30:24 -08:00
Nikolai Weibull
8c667f4bb8 Documentation/git-read-tree.txt: Add --reset to SYNOPSIS.
Signed-off-by: Nikolai Weibull <nikolai@bitwi.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-08 15:50:16 -08:00
Nikolai Weibull
d839091d13 Documentation/git-tag.txt: Fix the order of sections (DESCRIPTION should come before OPTIONS).
Signed-off-by: Nikolai Weibull <nikolai@bitwi.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-08 15:50:15 -08:00
Nikolai Weibull
03f6c23c5e Documentation/git-update-server-info.txt: Add -f alias for --force to documentation.
Signed-off-by: Nikolai Weibull <nikolai@bitwi.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-08 15:50:15 -08:00
Nikolai Weibull
5dd7342142 Documentation/git-http-fetch.txt: Document the commit-id argument.
Signed-off-by: Nikolai Weibull <nikolai@bitwi.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-08 15:50:15 -08:00
Nikolai Weibull
31f232819f Documentation/git-repack.txt: Add -l and -n.
This adds documentation for the -l and -n options to git-repack.

Signed-off-by: Nikolai Weibull <nikolai@bitwi.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-08 15:50:15 -08:00
Nikolai Weibull
5e34c99d95 Documentation/git-ls-remote.txt: Add -h and -t.
-h and -t are aliases for --heads and --tags to git-ls-remote.

Signed-off-by: Nikolai Weibull <nikolai@bitwi.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-08 15:50:15 -08:00
Nikolai Weibull
6f855371a5 Documentation/git-format-patch.txt: Add --signoff, --check, and long option-names.
The documentation was lacking descriptions for the --signoff and --check
options to git-format-patch.  It was also missing the following long
option-names: --output-directory (-o), --numbered (-n), --keep-subject
(-k), --author (-a), --date (-d), and --mbox (-m).

Signed-off-by: Nikolai Weibull <nikolai@bitwi.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-08 15:50:15 -08:00
Nikolai Weibull
d4ce5f7e50 Add documentation for the --topo-order option to git-show-branch.
Signed-off-by: Nikolai Weibull <nikolai@bitwi.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-08 15:50:14 -08:00
Nikolai Weibull
674b28085e Add documentation for git-revert and git-cherry-pick.
* Added the -e option to the documentation of git-cherry-pick.
* Added the -e and --no-commit option to git-revert.
* Removed redundant case expression for -n as --no-edit (already taken by
  --no-commit).

Signed-off-by: Nikolai Weibull <nikolai@bitwi.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-08 15:50:14 -08:00
Nikolai Weibull
d972217457 Documentation/git-cherry-pick: Add --replay and --no-commit.
Signed-off-by: Nikolai Weibull <nikolai@bitwi.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-08 15:50:14 -08:00
Nikolai Weibull
56e5e9170e Documentation/git-cvsimport.txt: Fix a slight glitch in description heading.
Signed-off-by: Nikolai Weibull <nikolai@bitwi.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-08 15:50:14 -08:00
Nikolai Weibull
e293de3efb Documentation/git-verify-pack.txt: added documentation for --.
The -- option has been added to the documentation of git-verify-pack.

Signed-off-by: Nikolai Weibull <nikolai@bitwi.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-08 15:50:14 -08:00
Nikolai Weibull
eaa54efc61 Documentation/git-commit.txt: Add long options and -- to documentation.
Added the following long options to documentation:

* --all
* --signoff
* --verify
* --no-verify
* --edit

Also added documentation for the -- option for terminating option parsing.

Signed-off-by: Nikolai Weibull <nikolai@bitwi.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-08 15:50:14 -08:00
Nikolai Weibull
16cc50d12e Use uniform description for the '--' option.
All descriptions of the '--' option were the same except for that in
Documentation/git-merge-index.txt.

Signed-off-by: Nikolai Weibull <nikolai@bitwi.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-08 15:50:13 -08:00
Nikolai Weibull
68e37f8402 Fix the description of --utf8 and --keep to git-am.
The git-am script actually transform --utf8 and --keep to -u and -k when
sent to git-mailinfo.

Signed-off-by: Nikolai Weibull <nikolai@bitwi.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-08 15:50:13 -08:00
Nikolai Weibull
63ae26f87a Document the --non-empty command-line option to git-pack-objects.
This provides (minimal) documentation for the --non-empty command-line
option to the pack-objects command.

Signed-off-by: Nikolai Weibull <nikolai@bitwi.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-08 15:50:13 -08:00
Junio C Hamano
bcaf60b25b show-branch: comment typo
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-08 14:10:02 -08:00
Junio C Hamano
9688a882e1 Documentation: recursive is the default strategy these days.
We still said resolve was the default in handful places.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-08 14:04:33 -08:00
Junio C Hamano
49ccb0877f Make sure we use compat/subprocess.py with Python 2.3 while running tests.
Otherwise the test will not succeed without installing.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-07 22:05:05 -08:00
Daniel Barkalow
128aed684d Clean up file descriptors when calling hooks.
When calling post-update hook, don't leave stdin and stdout connected to
the pushing connection.

Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-07 21:05:39 -08:00
Junio C Hamano
64224caf88 refs.c: make sure leading directories exist before writing a ref.
Otherwise cloning a repository with hierarchical branch/tag
over http would fail.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-07 17:48:53 -08:00
Junio C Hamano
361c06d8f5 Documentation(tutorial): adjust merge example to the new merge world order.
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-07 16:44:12 -08:00
Junio C Hamano
6bad1902f5 Documentation(cvs-migration): minor cleanups.
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-07 16:26:49 -08:00
Junio C Hamano
12bd7e78ee Documentation(glossary): minor formatting clean-ups.
Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-07 16:16:04 -08:00
Junio C Hamano
2fa090b6c1 Documentation: git.html/git.7
Finish each sentence with a full stop.

Instead of saying 'directory index' 'directory cache' etc,
consistently say 'index'.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-07 16:05:21 -08:00
Junio C Hamano
5e80092f7e Merge http://www.kernel.org/pub/scm/gitk/gitk 2005-12-07 11:25:42 -08:00
Paul Mackerras
fd8ccbec4f gitk: Work around Tcl's non-standard names for encodings
This uses a table of encoding names and aliases distilled from
http://www.iana.org/assignments/character-sets plus some heuristics
to convert standard encoding names to ones that Tcl recognizes.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-12-07 23:28:22 +11:00
Junio C Hamano
d23748a6af update-index: allow --index-info to add higher stages.
The new merge world order tells the merge strategies to leave
the cache unmerged and store the automerge result in the working
tree if automerge is not clean.  This was done for the resolve
strategy and recursive strategy when no rename is involved, but
recording a conflicting merge in the rename case could not
easily be done by the recursive strategy.

This commit adds a new input format, in addition to the exsting
two, to "update-index --index-info".

    (1) mode         SP sha1          TAB path
    The first format is what "git-apply --index-info"
    reports, and used to reconstruct a partial tree
    that is used for phony merge base tree when falling
    back on 3-way merge.

    (2) mode SP type SP sha1          TAB path
    The second format is to stuff git-ls-tree output
    into the index file.

    (3) mode         SP sha1 SP stage TAB path
    This format is to put higher order stages into the
    index file and matches git-ls-files --stage output.

To place a higher stage entry to the index, the path should
first be removed by feeding a mode=0 entry for the path, and
then feeding necessary input lines in the (3) format.

For example, starting with this index:

$ git ls-files -s
100644 8a1218a1024a212bb3db30becd860315f9f3ac52 0       frotz

$ git update-index --index-info ;# interactive session -- input follows...

0 0000000000000000000000000000000000000000	frotz
100644 8a1218a1024a212bb3db30becd860315f9f3ac52 1	frotz
100755 8a1218a1024a212bb3db30becd860315f9f3ac52 2	frotz

The first line of the input feeds 0 as the mode to remove the
path; the SHA1 does not matter as long as it is well formatted.
Then the second and third line feeds stage 1 and stage 2 entries
for that path.  After the above, we would end up with this:

$ git ls-files -s
100644 8a1218a1024a212bb3db30becd860315f9f3ac52 1	frotz
100755 8a1218a1024a212bb3db30becd860315f9f3ac52 2	frotz

This completes the groundwork for the new merge world order.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-12-07 01:53:50 -08:00