* master: (22 commits)
pager: Work around window resizing bug in 'less'
Teach git-remote add to fetch and track
blame: document --contents option
Use pretend_sha1_file() in git-blame and git-merge-recursive.
Add pretend_sha1_file() interface.
git-blame: no rev means start from the working tree file.
git-blame: an Emacs minor mode to view file with git-blame output.
Allow forcing of a parent commit, even if the parent is not a direct one.
bisect: it needs to be done in a working tree.
Commands requiring a work tree must not run in GIT_DIR
Add hg-to-git conversion utility.
blameview: Support browsable functionality to blameview.
gitweb: Convert project name to UTF-8
bash: Support git-bisect and its subcommands.
bash: Support --add completion to git-config.
bash: Hide git-resolve, its deprecated.
bash: Offer --prune completion for git-gc.
bash: Hide diff-stages from completion.
bash: Support completion on git-cherry.
Show an example of deleting commits with git-rebase.
...
This can be used to compress multiple changesets into one, for example
like
git cvsexportcommit -P cvshead mybranch
without having to do so in git first.
Signed-off-by: Simon 'corecode' Schubert <corecode@fs.ei.tum.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
hg-to-git.py is able to convert a Mercurial repository into a git one,
and preserves the branches in the process (unlike tailor)
hg-to-git.py can probably be greatly improved (it's a rather crude
combination of shell and python) but it does already work quite well for
me. Features:
- supports incremental conversion
(for keeping a git repo in sync with a hg one)
- supports hg branches
- converts hg tags
Signed-off-by: Stelian Pop <stelian@popies.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This particular use of git-rebase to remove a single commit or a
range of commits from the history of a branch recently came up on
the mailing list. Documenting the example should help other users
arrive at the same solution on their own.
It also was not obvious to the newcomer that git-rebase is able to
accept any commit for --onto <newbase> and <upstream>. We should
at least minimally document this, as much of the language in
git-rebase's manpage refers to 'branch' rather than 'committish'.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
The documentation for git-for-each-ref said that the refname variable
would return "the part after $GIT_DIR/refs/", which isn't true.
Signed-off-by: Andy Parkins <andyparkins@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
* master:
Rename get_ident() to fmt_ident() and make it available to outside
git-archimport: initial import needs empty directory
Revert "Allow branch.*.merge to talk about remote tracking branches."
Why is it bad to rewind a branch that has already been pushed out?
git-clone --reference: saner handling of borrowed symrefs.
* np/dreflog:
show-branch -g: default to the current branch.
Let git-checkout always drop any detached head
Enable HEAD@{...} and make it independent from the current branch
scan reflogs independently from refs
add reflog when moving HEAD to a new branch
create_symref(): do not assume pathname from git_path() persists long enough
add logref support to git-symbolic-ref
move create_symref() past log_ref_write()
add reflog entries for HEAD when detached
enable separate reflog for HEAD
lock_ref_sha1_basic(): remember the original name of a ref when resolving it
make reflog filename independent from struct ref_lock
Mention git-revert as an alternative to git-reset to revert changes.
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
* np/dreflog:
show-branch -g: default to the current branch.
Let git-checkout always drop any detached head
Enable HEAD@{...} and make it independent from the current branch
Default GIT_MERGE_VERBOSITY to 5 during tests.
Keep untracked files not involved in a merge.
Assorted typo fixes
Cleanup subcommand documentation for git-remote.
git-config --rename-section could rename wrong section
combine-diff: special case --unified=0
Why is it bad to rewind a branch that has already been pushed out?
honor GIT_REFLOG_ACTION in git-commit
fix reflog entries for "git-branch"
scan reflogs independently from refs
Conflicts:
git-checkout.sh
Now we have a separate reflog on HEAD, show-branch -g without an explicit
parameter defaults to the current branch, or HEAD when it is detached
from branches.
Signed-off-by: Junio C Hamano <junkio@cox.net>
This is to resolve conflicts early in preparation for possible
inclusion of "reflog on detached HEAD" series by Nico, as having
it in 1.5.0 would really help us remove confusion between
detached and attached states.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Jakub Narebski pointed out the positional notation in git-remote's
documentation was very confusing, especially now that we have 3
supported subcommands. Instead of referring to subcommands by
position, refer to them by name.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
I was reading the tutorial and noticed that we say this:
Also, don't use "git reset" on a publicly-visible branch that
other developers pull from, as git will be confused by history
that disappears in this way.
I do not think this is a good explanation. For example, if we
do this:
(1) I build a series and push it out.
---o---o---o---j
(2) Alice clones from me, and builds two commits on top of it.
---o---o---o---j---a---a
(3) I rewind one and build a few, and push them out.
---o---o---o...j
\
h---h---h---h
(4) Alice pulls from me again:
---o---o---o---j---a---a---*
\ /
h---h---h---h
Contrary to the description, git will happily have Alice merge
between the two branches, and never gets confused.
Maybe I did not want to have 'j' because it was an incomplete
solution to some problem, and Alice may have fixed it up with
her changes, while I abandoned that approach I started with 'j',
and worked on something completely unrelated in the four 'h'
commits. In such a case, the merge Alice would make would be
very sensible, and after she makes the merge if I pull from her,
the world will be perfect. I started something with 'j' and
dropped the ball, Alice picked it up and perfected it while I
went on to work on something else with 'h'. This would be a
perfect example of distributed parallel collaboration. There is
nothing confused about it.
The case the rewinding becomes problematic is if the work done
in 'h' tries to solve the same problem as 'j' tried to solve in
a different way. Then the merge forced on Alice would make her
pick between my previous attempt with her fixups (j+a) and my
second attempt (h). If 'a' commits were to fix up what 'j'
started, presumably Alice already studied and knows enough about
the problem so she should be able to make an informed decision
to pick between what 'j+a' and 'h' do.
A lot worse case is if Alice's work is not at all related to
what 'j' wanted to do (she did not mean to pick up from where I
left off -- she just wanted to work on something different).
Then she would not be familiar enough with what 'j' and 'h'
tried to achieve, and I'd be forcing her to pick between the
two. Of course if she can make the right decision, then again
that is a perfect example of distributed collaboration, but that
does not change the fact that I'd be forcing her to clean up my
mess.
Signed-off-by: Junio C Hamano <junkio@cox.net>
The default post-commit hook is actually empty; it is the update hook
that sends an email. This patch corrects hooks.txt to reflect that.
Signed-off-by: Andy Parkins <andyparkins@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
* master:
Fix some documentation typos and grammar
Don't find objects in packs which aren't available anymore.
Refactor open_packed_git to return an error code.
Correct comment in prepare_packed_git_one.
Cleanup prepare_packed_git_one to reuse install_packed_git.
Teach 'git remote' how to cleanup stale tracking branches.
Pull out remote listing functions in git-remote.
git-svn: do not let Git.pm warn if we prematurely close pipes
Update the documentation for the new '@{...}' syntax
Teach the '@{...}' notation to git-log -g
provide a nice @{...} syntax to always mean the current branch reflog
prevent HEAD reflog to be interpreted as current branch reflog
Use "git checkout -q" in git-bisect
add a quiet option to git-checkout
reword the detached head message a little again
Conflicts:
git-checkout.sh
Since it can be annoying to manually cleanup 40 tracking branches
which were removed by the remote system, 'git remote prune <n>'
can now be used to delete any tracking branches under <n> which
are no longer available on the remote system.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Those new messages are certainly nice, but there might be cases where
they are simply unwelcome, like when git-commit is used within scripts.
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
* master: (50 commits)
GIT v1.5.0-rc3
Do not use hardcoded path to xhmtl.xsl to generate user's manual
git main documentation: point at the user's manual.
t9200: do not test -x bit if the filesystem does not support it.
t9200: Re-code non-ascii path test in UTF-8
Update git-cat-file documentation
Documentation: "git-checkout <tree> <path>" takes any tree-ish
Improved error message from git-rebase
Fix git-update-index to work with relative pathnames.
Escape --upload-pack from expr.
Don't coredump on bad refs in update-server-info.
tone down the detached head warning
Fix git-tag -u
user-manual: todo's
user-manual: point to README for gitweb information
blameview: Use git-cat-file to read the file content.
git-fetch: Allow fetching the remote HEAD
git-send-email: remove debugging output.
Add a missing fork() error check.
Two small typofixes.
...
It does not seem to need it either and gives an error on FC5 I use
at kernel.org to cut documentation tarballs, so remove it in the
meantime.
Signed-off-by: Junio C Hamano <junkio@cox.net>
This is in the hope of giving JBF's user-manual wider exposure.
I am not very happy with trailing whitespaces in the new
document, but let's not worry too much about the formatting
issues for now, but concentrate more on the structure and the
contents.
I'd like complete gitweb setup instructions some day, but for now just
refer to the gitweb README.
Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Document Junio's show-branch trick for finding out which tags are
descendents of a given comit.
Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
I still really want a section on interoperability with CVS, subversion,
etc., but I'm not getting around to it very fast, so just add this to
the TODO section for now. And a few other minor todo updates.
Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Add a brief discussion of reflogs. Also recovery of dangling commits
seems to fit in here, so move some of the discussion out of Linus's
email to here.
Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Direct editing of config files may be more natural for users than using
the git-config commandline; but we should still reference the
git-config man page when we describe such editing, so people know where
to go for details on the config file syntax and meanings of the
variables.
Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Looks like we're going to allow git-config as the preferred alias to
git-repo-config, so let's document that instead.
Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Initial import of fsck and dangling objects discussion, mostly lifted from
an email from Linus.
Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
* master:
git-fsck-objects is now synonym to git-fsck
[PATCH] Rename git-repo-config to git-config.
Heavily expanded update hook to send more useful emails than the old hook
UNIX reference time of 1970-01-01 00:00 is UTC timezone, not local time zone
Teach for-each-ref about a little language called Tcl.
Add a sample program 'blameview' to show how to use git-blame --incremental
git-push through git protocol
Document 'git-blame --incremental'
Documentation/config.txt: Fix documentation of colour config tweaks.
wt-status: Actually accept `color.status.BLAH' configuration variables.
git-blame --incremental: don't use pager
Love it or hate it, some people actually still program in Tcl. Some
of those programs are meant for interfacing with Git. Programs such as
gitk and git-gui. It may be useful to have Tcl-safe output available
from for-each-ref, just like shell, Perl and Python already enjoy.
Thanks to Sergey Vlasov for pointing out the horrible flaws in the
first and second version of this patch, and steering me in the right
direction for Tcl value quoting.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>