Merge branch 'master' into next
* master: Fix trivial typo in git-log man page. Properly render asciidoc "callouts" in git man pages. Fix up remaining man pages that use asciidoc "callouts". Update the git-branch man page to include the "-r" option, annotate: display usage information if no filename was given annotate: fix warning about uninitialized scalar git-am --resolved: more usable error message.
This commit is contained in:
commit
1d19b324fb
@ -79,7 +79,7 @@ clean:
|
||||
asciidoc -b xhtml11 -d manpage -f asciidoc.conf $<
|
||||
|
||||
%.1 %.7 : %.xml
|
||||
xmlto man $<
|
||||
xmlto -m callouts.xsl man $<
|
||||
|
||||
%.xml : %.txt
|
||||
asciidoc -b docbook -d manpage -f asciidoc.conf $<
|
||||
|
16
Documentation/callouts.xsl
Normal file
16
Documentation/callouts.xsl
Normal file
@ -0,0 +1,16 @@
|
||||
<!-- callout.xsl: converts asciidoc callouts to man page format -->
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
|
||||
<xsl:template match="co">
|
||||
<xsl:value-of select="concat('\fB(',substring-after(@id,'-'),')\fR')"/>
|
||||
</xsl:template>
|
||||
<xsl:template match="calloutlist">
|
||||
<xsl:text>.sp </xsl:text>
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text> </xsl:text>
|
||||
</xsl:template>
|
||||
<xsl:template match="callout">
|
||||
<xsl:value-of select="concat('\fB',substring-after(@arearefs,'-'),'. \fR')"/>
|
||||
<xsl:apply-templates/>
|
||||
<xsl:text>.br </xsl:text>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
@ -61,7 +61,8 @@ $ git prune
|
||||
$ git count-objects <2>
|
||||
$ git repack <3>
|
||||
$ git prune <4>
|
||||
|
||||
------------
|
||||
+
|
||||
<1> running without "--full" is usually cheap and assures the
|
||||
repository health reasonably well.
|
||||
<2> check how many loose objects there are and how much
|
||||
@ -69,17 +70,16 @@ diskspace is wasted by not repacking.
|
||||
<3> without "-a" repacks incrementally. repacking every 4-5MB
|
||||
of loose objects accumulation may be a good rule of thumb.
|
||||
<4> after repack, prune removes the duplicate loose objects.
|
||||
------------
|
||||
|
||||
Repack a small project into single pack.::
|
||||
+
|
||||
------------
|
||||
$ git repack -a -d <1>
|
||||
$ git prune
|
||||
|
||||
------------
|
||||
+
|
||||
<1> pack all the objects reachable from the refs into one pack
|
||||
and remove unneeded other packs
|
||||
------------
|
||||
|
||||
|
||||
Individual Developer (Standalone)[[Individual Developer (Standalone)]]
|
||||
@ -129,10 +129,10 @@ $ git-init-db
|
||||
$ git add . <1>
|
||||
$ git commit -m 'import of frotz source tree.'
|
||||
$ git tag v2.43 <2>
|
||||
|
||||
------------
|
||||
+
|
||||
<1> add everything under the current directory.
|
||||
<2> make a lightweight, unannotated tag.
|
||||
------------
|
||||
|
||||
Create a topic branch and develop.::
|
||||
+
|
||||
@ -153,7 +153,8 @@ $ git checkout master <9>
|
||||
$ git pull . alsa-audio <10>
|
||||
$ git log --since='3 days ago' <11>
|
||||
$ git log v2.43.. curses/ <12>
|
||||
|
||||
------------
|
||||
+
|
||||
<1> create a new topic branch.
|
||||
<2> revert your botched changes in "curses/ux_audio_oss.c".
|
||||
<3> you need to tell git if you added a new file; removal and
|
||||
@ -170,7 +171,6 @@ you originally wrote.
|
||||
combined and include --max-count=10 (show 10 commits), --until='2005-12-10'.
|
||||
<12> view only the changes that touch what's in curses/
|
||||
directory, since v2.43 tag.
|
||||
------------
|
||||
|
||||
|
||||
Individual Developer (Participant)[[Individual Developer (Participant)]]
|
||||
@ -208,7 +208,8 @@ $ git pull git://git.kernel.org/pub/.../jgarzik/libata-dev.git ALL <5>
|
||||
$ git reset --hard ORIG_HEAD <6>
|
||||
$ git prune <7>
|
||||
$ git fetch --tags <8>
|
||||
|
||||
------------
|
||||
+
|
||||
<1> repeat as needed.
|
||||
<2> extract patches from your branch for e-mail submission.
|
||||
<3> "pull" fetches from "origin" by default and merges into the
|
||||
@ -221,7 +222,6 @@ area we are interested in.
|
||||
<7> garbage collect leftover objects from reverted pull.
|
||||
<8> from time to time, obtain official tags from the "origin"
|
||||
and store them under .git/refs/tags/.
|
||||
------------
|
||||
|
||||
|
||||
Push into another repository.::
|
||||
@ -239,7 +239,8 @@ satellite$ git push origin <4>
|
||||
mothership$ cd frotz
|
||||
mothership$ git checkout master
|
||||
mothership$ git pull . satellite <5>
|
||||
|
||||
------------
|
||||
+
|
||||
<1> mothership machine has a frotz repository under your home
|
||||
directory; clone from it to start a repository on the satellite
|
||||
machine.
|
||||
@ -252,7 +253,6 @@ to local "origin" branch.
|
||||
mothership machine. You could use this as a back-up method.
|
||||
<5> on mothership machine, merge the work done on the satellite
|
||||
machine into the master branch.
|
||||
------------
|
||||
|
||||
Branch off of a specific tag.::
|
||||
+
|
||||
@ -262,12 +262,12 @@ $ edit/compile/test; git commit -a
|
||||
$ git checkout master
|
||||
$ git format-patch -k -m --stdout v2.6.14..private2.6.14 |
|
||||
git am -3 -k <2>
|
||||
|
||||
------------
|
||||
+
|
||||
<1> create a private branch based on a well known (but somewhat behind)
|
||||
tag.
|
||||
<2> forward port all changes in private2.6.14 branch to master branch
|
||||
without a formal "merging".
|
||||
------------
|
||||
|
||||
|
||||
Integrator[[Integrator]]
|
||||
@ -317,7 +317,8 @@ $ git tag -s -m 'GIT 0.99.9x' v0.99.9x <10>
|
||||
$ git fetch ko && git show-branch master maint 'tags/ko-*' <11>
|
||||
$ git push ko <12>
|
||||
$ git push ko v0.99.9x <13>
|
||||
|
||||
------------
|
||||
+
|
||||
<1> see what I was in the middle of doing, if any.
|
||||
<2> see what topic branches I have and think about how ready
|
||||
they are.
|
||||
@ -346,7 +347,6 @@ In the output from "git show-branch", "master" should have
|
||||
everything "ko-master" has.
|
||||
<12> push out the bleeding edge.
|
||||
<13> push the tag out, too.
|
||||
------------
|
||||
|
||||
|
||||
Repository Administration[[Repository Administration]]
|
||||
@ -367,7 +367,6 @@ example of managing a shared central repository.
|
||||
|
||||
Examples
|
||||
~~~~~~~~
|
||||
|
||||
Run git-daemon to serve /pub/scm from inetd.::
|
||||
+
|
||||
------------
|
||||
@ -388,13 +387,13 @@ cindy:x:1002:1002::/home/cindy:/usr/bin/git-shell
|
||||
david:x:1003:1003::/home/david:/usr/bin/git-shell
|
||||
$ grep git /etc/shells <2>
|
||||
/usr/bin/git-shell
|
||||
|
||||
------------
|
||||
+
|
||||
<1> log-in shell is set to /usr/bin/git-shell, which does not
|
||||
allow anything but "git push" and "git pull". The users should
|
||||
get an ssh access to the machine.
|
||||
<2> in many distributions /etc/shells needs to list what is used
|
||||
as the login shell.
|
||||
------------
|
||||
|
||||
CVS-style shared repository.::
|
||||
+
|
||||
@ -419,7 +418,8 @@ $ cat info/allowed-users <4>
|
||||
refs/heads/master alice\|cindy
|
||||
refs/heads/doc-update bob
|
||||
refs/tags/v[0-9]* david
|
||||
|
||||
------------
|
||||
+
|
||||
<1> place the developers into the same git group.
|
||||
<2> and make the shared repository writable by the group.
|
||||
<3> use update-hook example by Carl from Documentation/howto/
|
||||
@ -427,7 +427,6 @@ for branch policy control.
|
||||
<4> alice and cindy can push into master, only bob can push into doc-update.
|
||||
david is the release manager and is the only person who can
|
||||
create and push version tags.
|
||||
------------
|
||||
|
||||
HTTP server to support dumb protocol transfer.::
|
||||
+
|
||||
@ -435,7 +434,7 @@ HTTP server to support dumb protocol transfer.::
|
||||
dev$ git update-server-info <1>
|
||||
dev$ ftp user@isp.example.com <2>
|
||||
ftp> cp -r .git /home/user/myproject.git
|
||||
|
||||
------------
|
||||
+
|
||||
<1> make sure your info/refs and objects/info/packs are up-to-date
|
||||
<2> upload to public HTTP server hosted by your ISP.
|
||||
------------
|
||||
|
@ -3,22 +3,27 @@ git-branch(1)
|
||||
|
||||
NAME
|
||||
----
|
||||
git-branch - Create a new branch, or remove an old one
|
||||
git-branch - List, create, or delete branches.
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git-branch' [[-f] <branchname> [<start-point>]]
|
||||
'git-branch' (-d | -D) <branchname>
|
||||
'git-branch' [-r]
|
||||
'git-branch' [-f] <branchname> [<start-point>]
|
||||
'git-branch' (-d | -D) <branchname>...
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
If no argument is provided, show available branches and mark current
|
||||
branch with star. Otherwise, create a new branch of name <branchname>.
|
||||
If a starting point is also specified, that will be where the branch is
|
||||
created, otherwise it will be created at the current HEAD.
|
||||
With no arguments given (or just `-r`) a list of available branches
|
||||
will be shown, the current branch will be highlighted with an asterisk.
|
||||
|
||||
With a `-d` or `-D` option, `<branchname>` will be deleted.
|
||||
In its second form, a new branch named <branchname> will be created.
|
||||
It will start out with a head equal to the one given as <start-point>.
|
||||
If no <start-point> is given, the branch will be created with a head
|
||||
equal to that of the currently checked out branch.
|
||||
|
||||
With a `-d` or `-D` option, `<branchname>` will be deleted. You may
|
||||
specify more than one branch for deletion.
|
||||
|
||||
|
||||
OPTIONS
|
||||
@ -30,40 +35,56 @@ OPTIONS
|
||||
Delete a branch irrespective of its index status.
|
||||
|
||||
-f::
|
||||
Force a reset of <branchname> to <start-point> (or current head).
|
||||
Force the creation of a new branch even if it means deleting
|
||||
a branch that already exists with the same name.
|
||||
|
||||
-r::
|
||||
List only the "remote" branches.
|
||||
|
||||
<branchname>::
|
||||
The name of the branch to create or delete.
|
||||
|
||||
<start-point>::
|
||||
Where to create the branch; defaults to HEAD. This
|
||||
option has no meaning with -d and -D.
|
||||
The new branch will be created with a HEAD equal to this. It may
|
||||
be given as a branch name, a commit-id, or a tag. If this option
|
||||
is omitted, the current branch is assumed.
|
||||
|
||||
|
||||
|
||||
Examples
|
||||
~~~~~~~~
|
||||
--------
|
||||
|
||||
Start development off of a known tag::
|
||||
+
|
||||
------------
|
||||
$ git clone git://git.kernel.org/pub/scm/.../linux-2.6 my2.6
|
||||
$ cd my2.6
|
||||
$ git branch my2.6.14 v2.6.14 <1>
|
||||
$ git branch my2.6.14 v2.6.14 <1>
|
||||
$ git checkout my2.6.14
|
||||
|
||||
<1> These two steps are the same as "checkout -b my2.6.14 v2.6.14".
|
||||
------------
|
||||
+
|
||||
<1> This step and the next one could be combined into a single step with
|
||||
"checkout -b my2.6.14 v2.6.14".
|
||||
|
||||
Delete unneeded branch::
|
||||
+
|
||||
------------
|
||||
$ git clone git://git.kernel.org/.../git.git my.git
|
||||
$ cd my.git
|
||||
$ git branch -D todo <1>
|
||||
|
||||
$ git branch -D todo <1>
|
||||
------------
|
||||
+
|
||||
<1> delete todo branch even if the "master" branch does not have all
|
||||
commits from todo branch.
|
||||
------------
|
||||
|
||||
|
||||
Notes
|
||||
-----
|
||||
|
||||
If you are creating a branch that you want to immediately checkout, it's
|
||||
easier to use the git checkout command with its `-b` option to create
|
||||
a branch and check it out with a single command.
|
||||
|
||||
|
||||
Author
|
||||
------
|
||||
|
@ -66,19 +66,19 @@ the `Makefile` to two revisions back, deletes hello.c by
|
||||
mistake, and gets it back from the index.
|
||||
+
|
||||
------------
|
||||
$ git checkout master <1>
|
||||
$ git checkout master~2 Makefile <2>
|
||||
$ git checkout master <1>
|
||||
$ git checkout master~2 Makefile <2>
|
||||
$ rm -f hello.c
|
||||
$ git checkout hello.c <3>
|
||||
|
||||
<1> switch branch
|
||||
<2> take out a file out of other commit
|
||||
<3> or "git checkout -- hello.c", as in the next example.
|
||||
$ git checkout hello.c <3>
|
||||
------------
|
||||
+
|
||||
If you have an unfortunate branch that is named `hello.c`, the
|
||||
last step above would be confused as an instruction to switch to
|
||||
that branch. You should instead write:
|
||||
<1> switch branch
|
||||
<2> take out a file out of other commit
|
||||
<3> restore hello.c from HEAD of current branch
|
||||
+
|
||||
If you have an unfortunate branch that is named `hello.c`, this
|
||||
step would be confused as an instruction to switch to that branch.
|
||||
You should instead write:
|
||||
+
|
||||
------------
|
||||
$ git checkout -- hello.c
|
||||
|
@ -46,40 +46,41 @@ EXAMPLES
|
||||
Various ways to check your working tree::
|
||||
+
|
||||
------------
|
||||
$ git diff <1>
|
||||
$ git diff --cached <2>
|
||||
$ git diff HEAD <3>
|
||||
|
||||
$ git diff <1>
|
||||
$ git diff --cached <2>
|
||||
$ git diff HEAD <3>
|
||||
------------
|
||||
+
|
||||
<1> changes in the working tree since your last git-update-index.
|
||||
<2> changes between the index and your last commit; what you
|
||||
would be committing if you run "git commit" without "-a" option.
|
||||
<3> changes in the working tree since your last commit; what you
|
||||
would be committing if you run "git commit -a"
|
||||
------------
|
||||
|
||||
Comparing with arbitrary commits::
|
||||
+
|
||||
------------
|
||||
$ git diff test <1>
|
||||
$ git diff HEAD -- ./test <2>
|
||||
$ git diff HEAD^ HEAD <3>
|
||||
|
||||
$ git diff test <1>
|
||||
$ git diff HEAD -- ./test <2>
|
||||
$ git diff HEAD^ HEAD <3>
|
||||
------------
|
||||
+
|
||||
<1> instead of using the tip of the current branch, compare with the
|
||||
tip of "test" branch.
|
||||
<2> instead of comparing with the tip of "test" branch, compare with
|
||||
the tip of the current branch, but limit the comparison to the
|
||||
file "test".
|
||||
<3> compare the version before the last commit and the last commit.
|
||||
------------
|
||||
|
||||
|
||||
Limiting the diff output::
|
||||
+
|
||||
------------
|
||||
$ git diff --diff-filter=MRC <1>
|
||||
$ git diff --name-status -r <2>
|
||||
$ git diff arch/i386 include/asm-i386 <3>
|
||||
|
||||
$ git diff --diff-filter=MRC <1>
|
||||
$ git diff --name-status -r <2>
|
||||
$ git diff arch/i386 include/asm-i386 <3>
|
||||
------------
|
||||
+
|
||||
<1> show only modification, rename and copy, but not addition
|
||||
nor deletion.
|
||||
<2> show only names and the nature of change, but not actual
|
||||
@ -88,18 +89,17 @@ which in turn also disables recursive behaviour, so without -r
|
||||
you would only see the directory name if there is a change in a
|
||||
file in a subdirectory.
|
||||
<3> limit diff output to named subtrees.
|
||||
------------
|
||||
|
||||
Munging the diff output::
|
||||
+
|
||||
------------
|
||||
$ git diff --find-copies-harder -B -C <1>
|
||||
$ git diff -R <2>
|
||||
|
||||
$ git diff --find-copies-harder -B -C <1>
|
||||
$ git diff -R <2>
|
||||
------------
|
||||
+
|
||||
<1> spend extra cycles to find renames, copies and complete
|
||||
rewrites (very expensive).
|
||||
<2> output diff in reverse.
|
||||
------------
|
||||
|
||||
|
||||
Author
|
||||
|
@ -60,12 +60,12 @@ Start a new git repository for an existing code base::
|
||||
+
|
||||
----------------
|
||||
$ cd /path/to/my/codebase
|
||||
$ git-init-db <1>
|
||||
$ git-add . <2>
|
||||
|
||||
$ git-init-db <1>
|
||||
$ git-add . <2>
|
||||
----------------
|
||||
+
|
||||
<1> prepare /path/to/my/codebase/.git directory
|
||||
<2> add all existing file to the index
|
||||
----------------
|
||||
|
||||
|
||||
Author
|
||||
|
@ -14,13 +14,12 @@ DESCRIPTION
|
||||
-----------
|
||||
Shows the commit logs.
|
||||
|
||||
The command takes options applicable to the gitlink::git-rev-list[1]
|
||||
The command takes options applicable to the gitlink:git-rev-list[1]
|
||||
command to control what is shown and how, and options applicable to
|
||||
the gitlink::git-diff-tree[1] commands to control how the change
|
||||
the gitlink:git-diff-tree[1] commands to control how the change
|
||||
each commit introduces are shown.
|
||||
|
||||
This manual page describes only the most frequently used
|
||||
options.
|
||||
This manual page describes only the most frequently used options.
|
||||
|
||||
|
||||
OPTIONS
|
||||
|
@ -49,10 +49,11 @@ Undo a commit and redo::
|
||||
+
|
||||
------------
|
||||
$ git commit ...
|
||||
$ git reset --soft HEAD^ <1>
|
||||
$ edit <2>
|
||||
$ git commit -a -c ORIG_HEAD <3>
|
||||
|
||||
$ git reset --soft HEAD^ <1>
|
||||
$ edit <2>
|
||||
$ git commit -a -c ORIG_HEAD <3>
|
||||
------------
|
||||
+
|
||||
<1> This is most often done when you remembered what you
|
||||
just committed is incomplete, or you misspelled your commit
|
||||
message, or both. Leaves working tree as it was before "reset".
|
||||
@ -60,43 +61,43 @@ message, or both. Leaves working tree as it was before "reset".
|
||||
<3> "reset" copies the old head to .git/ORIG_HEAD; redo the
|
||||
commit by starting with its log message. If you do not need to
|
||||
edit the message further, you can give -C option instead.
|
||||
------------
|
||||
|
||||
Undo commits permanently::
|
||||
+
|
||||
------------
|
||||
$ git commit ...
|
||||
$ git reset --hard HEAD~3 <1>
|
||||
|
||||
$ git reset --hard HEAD~3 <1>
|
||||
------------
|
||||
+
|
||||
<1> The last three commits (HEAD, HEAD^, and HEAD~2) were bad
|
||||
and you do not want to ever see them again. Do *not* do this if
|
||||
you have already given these commits to somebody else.
|
||||
------------
|
||||
|
||||
Undo a commit, making it a topic branch::
|
||||
+
|
||||
------------
|
||||
$ git branch topic/wip <1>
|
||||
$ git reset --hard HEAD~3 <2>
|
||||
$ git checkout topic/wip <3>
|
||||
|
||||
$ git branch topic/wip <1>
|
||||
$ git reset --hard HEAD~3 <2>
|
||||
$ git checkout topic/wip <3>
|
||||
------------
|
||||
+
|
||||
<1> You have made some commits, but realize they were premature
|
||||
to be in the "master" branch. You want to continue polishing
|
||||
them in a topic branch, so create "topic/wip" branch off of the
|
||||
current HEAD.
|
||||
<2> Rewind the master branch to get rid of those three commits.
|
||||
<3> Switch to "topic/wip" branch and keep working.
|
||||
------------
|
||||
|
||||
Undo update-index::
|
||||
+
|
||||
------------
|
||||
$ edit <1>
|
||||
$ edit <1>
|
||||
$ git-update-index frotz.c filfre.c
|
||||
$ mailx <2>
|
||||
$ git reset <3>
|
||||
$ git pull git://info.example.com/ nitfol <4>
|
||||
|
||||
$ mailx <2>
|
||||
$ git reset <3>
|
||||
$ git pull git://info.example.com/ nitfol <4>
|
||||
------------
|
||||
+
|
||||
<1> you are happily working on something, and find the changes
|
||||
in these files are in good order. You do not want to see them
|
||||
when you run "git diff", because you plan to work on other files
|
||||
@ -109,12 +110,11 @@ index changes for these two files. Your changes in working tree
|
||||
remain there.
|
||||
<4> then you can pull and merge, leaving frotz.c and filfre.c
|
||||
changes still in the working tree.
|
||||
------------
|
||||
|
||||
Undo a merge or pull::
|
||||
+
|
||||
------------
|
||||
$ git pull <1>
|
||||
$ git pull <1>
|
||||
Trying really trivial in-index merge...
|
||||
fatal: Merge requires file-level merging
|
||||
Nope.
|
||||
@ -122,20 +122,19 @@ Nope.
|
||||
Auto-merging nitfol
|
||||
CONFLICT (content): Merge conflict in nitfol
|
||||
Automatic merge failed/prevented; fix up by hand
|
||||
$ git reset --hard <2>
|
||||
|
||||
$ git reset --hard <2>
|
||||
$ git pull . topic/branch <3>
|
||||
Updating from 41223... to 13134...
|
||||
Fast forward
|
||||
$ git reset --hard ORIG_HEAD <4>
|
||||
------------
|
||||
+
|
||||
<1> try to update from the upstream resulted in a lot of
|
||||
conflicts; you were not ready to spend a lot of time merging
|
||||
right now, so you decide to do that later.
|
||||
<2> "pull" has not made merge commit, so "git reset --hard"
|
||||
which is a synonym for "git reset --hard HEAD" clears the mess
|
||||
from the index file and the working tree.
|
||||
|
||||
$ git pull . topic/branch <3>
|
||||
Updating from 41223... to 13134...
|
||||
Fast forward
|
||||
$ git reset --hard ORIG_HEAD <4>
|
||||
|
||||
<3> merge a topic branch into the current branch, which resulted
|
||||
in a fast forward.
|
||||
<4> but you decided that the topic branch is not ready for public
|
||||
@ -143,7 +142,6 @@ consumption yet. "pull" or "merge" always leaves the original
|
||||
tip of the current branch in ORIG_HEAD, so resetting hard to it
|
||||
brings your index file and the working tree back to that state,
|
||||
and resets the tip of the branch to that commit.
|
||||
------------
|
||||
|
||||
Interrupted workflow::
|
||||
+
|
||||
@ -155,21 +153,21 @@ need to get to the other branch for a quick bugfix.
|
||||
------------
|
||||
$ git checkout feature ;# you were working in "feature" branch and
|
||||
$ work work work ;# got interrupted
|
||||
$ git commit -a -m 'snapshot WIP' <1>
|
||||
$ git commit -a -m 'snapshot WIP' <1>
|
||||
$ git checkout master
|
||||
$ fix fix fix
|
||||
$ git commit ;# commit with real log
|
||||
$ git checkout feature
|
||||
$ git reset --soft HEAD^ ;# go back to WIP state <2>
|
||||
$ git reset <3>
|
||||
|
||||
$ git reset --soft HEAD^ ;# go back to WIP state <2>
|
||||
$ git reset <3>
|
||||
------------
|
||||
+
|
||||
<1> This commit will get blown away so a throw-away log message is OK.
|
||||
<2> This removes the 'WIP' commit from the commit history, and sets
|
||||
your working tree to the state just before you made that snapshot.
|
||||
<3> After <2>, the index file still has all the WIP changes you
|
||||
committed in <1>. This sets it to the last commit you were
|
||||
basing the WIP changes on.
|
||||
------------
|
||||
<3> At this point the index file still has all the WIP changes you
|
||||
committed as 'snapshot WIP'. This updates the index to show your
|
||||
WIP files as uncommitted.
|
||||
|
||||
Author
|
||||
------
|
||||
|
@ -247,34 +247,33 @@ To update and refresh only the files already checked out:
|
||||
$ git-checkout-index -n -f -a && git-update-index --ignore-missing --refresh
|
||||
----------------
|
||||
|
||||
On an inefficient filesystem with `core.ignorestat` set:
|
||||
|
||||
On an inefficient filesystem with `core.ignorestat` set::
|
||||
+
|
||||
------------
|
||||
$ git update-index --really-refresh <1>
|
||||
$ git update-index --no-assume-unchanged foo.c <2>
|
||||
$ git diff --name-only <3>
|
||||
$ git update-index --really-refresh <1>
|
||||
$ git update-index --no-assume-unchanged foo.c <2>
|
||||
$ git diff --name-only <3>
|
||||
$ edit foo.c
|
||||
$ git diff --name-only <4>
|
||||
$ git diff --name-only <4>
|
||||
M foo.c
|
||||
$ git update-index foo.c <5>
|
||||
$ git diff --name-only <6>
|
||||
$ git update-index foo.c <5>
|
||||
$ git diff --name-only <6>
|
||||
$ edit foo.c
|
||||
$ git diff --name-only <7>
|
||||
$ git update-index --no-assume-unchanged foo.c <8>
|
||||
$ git diff --name-only <9>
|
||||
$ git diff --name-only <7>
|
||||
$ git update-index --no-assume-unchanged foo.c <8>
|
||||
$ git diff --name-only <9>
|
||||
M foo.c
|
||||
|
||||
<1> forces lstat(2) to set "assume unchanged" bits for paths
|
||||
that match index.
|
||||
------------
|
||||
+
|
||||
<1> forces lstat(2) to set "assume unchanged" bits for paths that match index.
|
||||
<2> mark the path to be edited.
|
||||
<3> this does lstat(2) and finds index matches the path.
|
||||
<4> this does lstat(2) and finds index does not match the path.
|
||||
<4> this does lstat(2) and finds index does *not* match the path.
|
||||
<5> registering the new version to index sets "assume unchanged" bit.
|
||||
<6> and it is assumed unchanged.
|
||||
<7> even after you edit it.
|
||||
<8> you can tell about the change after the fact.
|
||||
<9> now it checks with lstat(2) and finds it has been changed.
|
||||
------------
|
||||
|
||||
|
||||
Configuration
|
||||
|
@ -376,6 +376,13 @@ do
|
||||
echo "No changes - did you forget update-index?"
|
||||
stop_here $this
|
||||
fi
|
||||
unmerged=$(git-ls-files -u)
|
||||
if test -n "$unmerged"
|
||||
then
|
||||
echo "You still have unmerged paths in your index"
|
||||
echo "did you forget update-index?"
|
||||
stop_here $this
|
||||
fi
|
||||
apply_status=0
|
||||
;;
|
||||
esac
|
||||
|
@ -10,9 +10,10 @@ use warnings;
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use POSIX qw(strftime gmtime);
|
||||
use File::Basename qw(basename dirname);
|
||||
|
||||
sub usage() {
|
||||
print STDERR 'Usage: ${\basename $0} [-s] [-S revs-file] file [ revision ]
|
||||
print STDERR "Usage: ${\basename $0} [-s] [-S revs-file] file [ revision ]
|
||||
-l, --long
|
||||
Show long rev (Defaults off)
|
||||
-t, --time
|
||||
@ -23,7 +24,7 @@ sub usage() {
|
||||
Use revs from revs-file instead of calling git-rev-list
|
||||
-h, --help
|
||||
This message.
|
||||
';
|
||||
";
|
||||
|
||||
exit(1);
|
||||
}
|
||||
@ -35,7 +36,7 @@ my $rc = GetOptions( "long|l" => \$longrev,
|
||||
"help|h" => \$help,
|
||||
"rename|r" => \$rename,
|
||||
"rev-file|S=s" => \$rev_file);
|
||||
if (!$rc or $help) {
|
||||
if (!$rc or $help or !@ARGV) {
|
||||
usage();
|
||||
}
|
||||
|
||||
@ -208,6 +209,9 @@ sub find_parent_renames {
|
||||
while (my $change = <$patch>) {
|
||||
chomp $change;
|
||||
my $filename = <$patch>;
|
||||
if (!defined $filename) {
|
||||
next;
|
||||
}
|
||||
chomp $filename;
|
||||
|
||||
if ($change =~ m/^[AMD]$/ ) {
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
USAGE='[(-d | -D) <branchname>] | [[-f] <branchname> [<start-point>]]'
|
||||
USAGE='[(-d | -D) <branchname>] | [[-f] <branchname> [<start-point>]] | -r'
|
||||
LONG_USAGE='If no arguments, show available branches and mark current branch with a star.
|
||||
If one argument, create a new branch <branchname> based off of current HEAD.
|
||||
If two arguments, create a new branch <branchname> based off of <start-point>.'
|
||||
|
Loading…
Reference in New Issue
Block a user