[PATCH] Ensure SHELL_PATH is the hash bang for test suite askpass helper script.

2014-09-29 Thread Ben Walton
The askpass script that is created for use by the test suite should
use SHELL_PATH for its hash bang instead of /bin/sh. Commit 5a4352024
introduced the use of idioms not supported in some legacy /bin/sh
implementations.

Use write_script to ensure this happens automatically. This lets us
remove the chmod step as well, since write_script handles that.

Signed-off-by: Ben Walton bdwal...@gmail.com
---
 t/lib-credential.sh | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/t/lib-credential.sh b/t/lib-credential.sh
index 9e7d796..d8e41f7 100755
--- a/t/lib-credential.sh
+++ b/t/lib-credential.sh
@@ -278,12 +278,10 @@ helper_test_timeout() {
'
 }
 
-cat askpass \EOF
-#!/bin/sh
+write_script askpass \EOF
 echo 2 askpass: $*
 what=$(echo $1 | cut -d  -f1 | tr A-Z a-z | tr -cd a-z)
 echo askpass-$what
 EOF
-chmod +x askpass
 GIT_ASKPASS=$PWD/askpass
 export GIT_ASKPASS
-- 
1.9.1

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Code changes in merge commits

2014-09-29 Thread John Tapsell
Hi,

  Our team just struggled with this problem, and I've created a
simple, 3 commit large, example git repository to demonstrate the
problem:

https://github.com/johnflux/ExampleEvilness2

The code:   Adds a file, adds a security fix commit, then removes the
fix during a merge.

This happened by accident in our code during a merge, but nobody
noticed, and it was not easy to track down.

In this example, you can see that the security fix was removed by doing:

$ git log -m -p

However the following do NOT show that the security fix was removed:

$ git log -m -p .
$ git log -m -p tmp.c
$ git log -c -p tmp.c

And so on. In a large code base, this a problem.

John
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Code changes in merge commits

2014-09-29 Thread John Tapsell
Rereading what I wrote, I came across as unintentionally harsh and
rude.  Sorry about that - I was trying to be concise and terse, and it
went a bit wrong :)


What I was thinking to improve this is two short-term fixes:

1. Can we get   git log -m -p . in the top level directory to show
the same commits as just git log -m -p ?
2. Can we get   git log -m -p somefile   to show all the
changes to that file?  Including when lines are added and then removed
by the merge somehow?

But in the longer term, I was thinking about how this could be improved...

What if merge commits were forced into being always trivial?   i.e.
prevent merges with conflicts or code changes?
Then conflict resolution and code changes are pushed into a second
ordinary commit.  That way you can always see what changes have been
made to the code.

E.g.  If you have branch master  and branch A, and there are
conflicts when you merge, you could end up with:

merge commit
   |  \
   |  preparation changes to fix conflicts with oldmaster
oldmaster   |
  A


I know this isn't great, but maybe something along these lines?
Ideally I'd like to see all the code changes to a code base just with
git log -p.

Any thoughts?

Thanks,

John Tapsell
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] Documentation/git-rebase.txt: discuss --fork-point assumption of vanilla git rebase in DESCRIPTION.

2014-09-29 Thread Sergey Organov
Junio C Hamano gits...@pobox.com writes:

 Sergey Organov sorga...@gmail.com writes:

 I think you meant to say that we may find a better source to calculate
 the exact set of commits to rebase,...

 Yes.

 It is debatable if we should do the same when the user tells us to
 rebase with respect to a specific _branch_ by giving the 'upstream'
 argument, but that is an entirely separate issue.  We might want to
 do a similar command line heuristics to tell between the branch
 switching git checkout master (which is an operation about a
 branch) and head detaching git checkout refs/heads/master^0 (which
 is an operation about a commit) if we want to help the users by
 auto-enabling fork-point mode.

 Well, IMHO git rebase and git rebase @{u} must do exactly the same
 thing.

 That is not part of the current discussion is what I meant by It
 is debatable... We might want to.  There is no such patch to git
 rebase itself in this topic ;-).

Yes, but to suggest better documentation I figure I need to understand
all the related issues, so it is still somewhat relevant.

 With the We might want to, I mean git rebase, git rebase @{u}
 and git rebase origin/master (if your @{u} happens to be that
 branch) may want to do exactly the same thing.  The last one however
 is very questionable, as sometimes you would want the --fork-point
 heuristics, and some other times you would want no digging of the
 reflogs involved (i.e. I want everything not in this _exact_ commit
 to be rebased).

 On the other hand, I'm afraid different defaults were chosen for
 backward compatibility?

 There is no backward compatibility issue involved with the current
 behaviour.  Changing it _will_ break compatibility, of course.

 It is more like the command used not to guess with fork-point at
 all, i.e. we liked its exactness, but git rebase (no argument)
 case is so obviously not about an exact commit but is about branch
 that it is safe to use --fork-point guess without being confusing.

Well, that's exactly what ended-up being /extremely/ confusing in my
case.

 Once you start giving the commit/branch with respect to which you
 conduct your rebase, it no longer is so cut-and-dried obvious that
 by git rebase @{u} if the user wants us to guess by digging the
 reflog of @{u} to find a better fork point, or if the user wants to
 do an exact rebase with respect to the commit at the tip of that
 branch.

Whatever excuses are, to me it still looks entirely unnatural that 'git
rebase' and 'git rebase @{u}' mean almost the same /except/ the default
value of --fork-point is different, sorry.

P.S. I'll prepare improved patch for the documentation shortly.

-- 
Segey.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Code changes in merge commits

2014-09-29 Thread Matthieu Moy
John Tapsell johnf...@gmail.com writes:

 What if merge commits were forced into being always trivial?

It would be relatively easy to force a client to always have trivial
merges, but much harder to prevent an attacker to forge a non-trivial
merge commit (e.g. modifying his local git command) and push it.

 Ideally I'd like to see all the code changes to a code base just with
 git log -p.

What I'd love to see with git log -p is the diff between a trivial
merge (possibly including conflict markers) and the actual merge commit.
That would imply that git log would redo the merge before computing
the diff (rather heavyweight :-( ), but an empty diff would mean no
change other than merge, and if any, we would see the conflict
resolution or additional changes in the diff.

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Code changes in merge commits

2014-09-29 Thread John Tapsell
 What I'd love to see with git log -p is the diff between a trivial
 merge (possibly including conflict markers) and the actual merge commit.
 That would imply that git log would redo the merge before computing
 the diff (rather heavyweight :-( ), but an empty diff would mean no
 change other than merge, and if any, we would see the conflict
 resolution or additional changes in the diff.

This would be wonderful.  And I'd rather have git do the heavyweight
work than doing it myself :-/

I don't know the git internals at all - would it be possible to save
the results of the diff?  This is what I was aiming for in my idea of
making the merge and conflict-resolution as separate commits.

 --
 Matthieu Moy
 http://www-verimag.imag.fr/~moy/
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2] Documentation/git-rebase.txt: discuss --fork-point assumption of vanilla git rebase in DESCRIPTION.

2014-09-29 Thread Sergey Organov
Vanilla git rebase defaults to --fork-point that in some cases
makes behavior very different from git rebase upstream,
where --no-fork-point is assumed. This fact was not mentioned in
the DESCRIPTION section of the manual page, even though the case of
omitted upstream was otherwise discussed. That in turn made actual
behavior of vanilla git rebase hardly discoverable.

While we are at it, clarify the --fork-point description itself as well.

Signed-off-by: Sergey Organov sorga...@gmail.com
---
As asked by Junio C Hamano gits...@pobox.com, the newly introduced
'fork_point' term has been described.


 Documentation/git-rebase.txt | 31 +++
 1 file changed, 19 insertions(+), 12 deletions(-)

diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt
index 4138554..2e6f125 100644
--- a/Documentation/git-rebase.txt
+++ b/Documentation/git-rebase.txt
@@ -21,15 +21,17 @@ If branch is specified, 'git rebase' will perform an 
automatic
 it remains on the current branch.
 
 If upstream is not specified, the upstream configured in
-branch.name.remote and branch.name.merge options will be used; see
-linkgit:git-config[1] for details.  If you are currently not on any
-branch or if the current branch does not have a configured upstream,
-the rebase will abort.
+branch.name.remote and branch.name.merge options will be used (see
+linkgit:git-config[1] for details) and the `--fork-point` option is
+assumed.  If you are currently not on any branch or if the current
+branch does not have a configured upstream, the rebase will abort.
 
 All changes made by commits in the current branch but that are not
 in upstream are saved to a temporary area.  This is the same set
-of commits that would be shown by `git log upstream..HEAD` (or
-`git log HEAD`, if --root is specified).
+of commits that would be shown by `git log upstream..HEAD`; or by
+`git log 'fork_point'..HEAD`, if --fork-point is either specified or
+assumed (see --fork-point description below); or by `git log HEAD`, if
+--root is specified.
 
 The current branch is reset to upstream, or newbase if the
 --onto option was supplied.  This has the exact same effect as
@@ -327,13 +329,18 @@ 
link:howto/revert-a-faulty-merge.html[revert-a-faulty-merge How-To] for details)
 
 --fork-point::
 --no-fork-point::
-   Use 'git merge-base --fork-point' to find a better common ancestor
-   between `upstream` and `branch` when calculating which commits have
-   have been introduced by `branch` (see linkgit:git-merge-base[1]).
+   Use reflog to find a better common ancestor between upstream
+   and branch when calculating which commits have been
+   introduced by branch. 
 +
-If no non-option arguments are given on the command line, then the default is
-`--fork-point @{u}` otherwise the `upstream` argument is interpreted literally
-unless the `--fork-point` option is specified.
+When --fork-point is active, 'fork_point' will be used instead of
+upstream to calculate the set of commits to rebase, where
+'fork_point' is the result of `git merge-base --fork-point upstream
+branch` command (see linkgit:git-merge-base[1]).  If 'fork_point'
+ends up being empty, the upstream will be used instead.
++
+If either upstream or --root is given on the command line, then the
+default is `--no-fork-point`, otherwise the default is `--fork-point`.
 
 --ignore-whitespace::
 --whitespace=option::
-- 
1.9.3

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Code changes in merge commits

2014-09-29 Thread Duy Nguyen
On Mon, Sep 29, 2014 at 5:59 PM, Matthieu Moy
matthieu@grenoble-inp.fr wrote:
 Ideally I'd like to see all the code changes to a code base just with
 git log -p.

 What I'd love to see with git log -p is the diff between a trivial
 merge (possibly including conflict markers) and the actual merge commit.
 That would imply that git log would redo the merge before computing
 the diff (rather heavyweight :-( ), but an empty diff would mean no
 change other than merge, and if any, we would see the conflict
 resolution or additional changes in the diff.

Topic tr/remerge-diff in 'pu'? I think --remerge-diff works with
git-log, but I'm not sure.
-- 
Duy
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] Do not make trace.c/getnanotime an inlined function

2014-09-29 Thread Duy Nguyen
On Sun, Sep 28, 2014 at 2:50 PM, Ben Walton bdwal...@gmail.com wrote:
 Oracle Studio compilers don't allow for static variables in functions
 that are defined to be inline. GNU C does permit this. Let's reference
 the C99 standard though, which doesn't allow for inline functions to
 contain modifiable static variables.

 Signed-off-by: Ben Walton bdwal...@gmail.com
 ---
  trace.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

 diff --git a/trace.c b/trace.c
 index b6f25a2..4778608 100644
 --- a/trace.c
 +++ b/trace.c
 @@ -385,7 +385,7 @@ static inline uint64_t gettimeofday_nanos(void)
   * Returns nanoseconds since the epoch (01/01/1970), for performance tracing
   * (i.e. favoring high precision over wall clock time accuracy).
   */
 -inline uint64_t getnanotime(void)
 +uint64_t getnanotime(void)
  {
 static uint64_t offset;

Would moving this offset outside getnanotime() work?
-- 
Duy
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2] Documentation/git-rebase.txt: discuss --fork-point assumption of vanilla git rebase in DESCRIPTION.

2014-09-29 Thread Junio C Hamano
Sergey Organov sorga...@gmail.com writes:

 Vanilla git rebase defaults to --fork-point that in some cases
 makes behavior very different from git rebase upstream,
 where --no-fork-point is assumed. This fact was not mentioned in
 the DESCRIPTION section of the manual page, even though the case of
 omitted upstream was otherwise discussed. That in turn made actual
 behavior of vanilla git rebase hardly discoverable.

 While we are at it, clarify the --fork-point description itself as well.

 Signed-off-by: Sergey Organov sorga...@gmail.com
 ---
 As asked by Junio C Hamano gits...@pobox.com, the newly introduced
 'fork_point' term has been described.


I suspect will be used as a fallback might be easier to understand
what is going on instead of will be used instead, but other than
that, the new explanation of what fork-point is is a very welcome
update, I think.

 diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt
 index 4138554..2e6f125 100644
 --- a/Documentation/git-rebase.txt
 +++ b/Documentation/git-rebase.txt
 @@ -21,15 +21,17 @@ If branch is specified, 'git rebase' will perform an 
 automatic
  it remains on the current branch.
  
  If upstream is not specified, the upstream configured in
 +branch.name.remote and branch.name.merge options will be used (see
 +linkgit:git-config[1] for details) and the `--fork-point` option is
 +assumed.  If you are currently not on any branch or if the current
 +branch does not have a configured upstream, the rebase will abort.
  
  All changes made by commits in the current branch but that are not
  in upstream are saved to a temporary area.  This is the same set
 +of commits that would be shown by `git log upstream..HEAD`; or by
 +`git log 'fork_point'..HEAD`, if --fork-point is either specified or
 +assumed (see --fork-point description below); or by `git log HEAD`, if
 +--root is specified.

It is easier to read with is either specified or assumed shortened
to is active, I think, because that is the word you use to explain
how the commit is computed for --fork-point processing.

 @@ -327,13 +329,18 @@
 link:howto/revert-a-faulty-merge.html[revert-a-faulty-merge How-To]
 for details)
  
  --fork-point::
  --no-fork-point::
 + Use reflog to find a better common ancestor between upstream
 + and branch when calculating which commits have been
 + introduced by branch. 
  +
 +When --fork-point is active, 'fork_point' will be used instead of
 +upstream to calculate the set of commits to rebase, where
 +'fork_point' is the result of `git merge-base --fork-point upstream
 +branch` command (see linkgit:git-merge-base[1]).  If 'fork_point'
 +ends up being empty, the upstream will be used instead.
 ++
 +If either upstream or --root is given on the command line, then the
 +default is `--no-fork-point`, otherwise the default is `--fork-point`.
  
  --ignore-whitespace::
  --whitespace=option::


The patch failed to apply

Applying: Documentation/git-rebase.txt: discuss --fork-point assumption of 
vanilla git rebase in DESCRIPTION.
fatal: corrupt patch at line 38

but the fix-up is trivial, so no need to resend.

Thanks.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


`git log relative_path_to_object` does not respect the --work-tree path

2014-09-29 Thread Roberto Eduardo Decurnex Gorosito
When passing objects to the `git log`, by just naming them or using
the `--objects` option, relative paths are evaluated using the current
working directory instead of the current working tree path.

Even the error message is clearly wrong.
unknown revision or path not in the working tree.

Example:

Given a repo at ~/path/to_repo containing a file such as README.md
(~/path/to_repo/README.md)

~/path$ git --work-tree=~/path/to_repo log README.md
fatal: ambiguous argument 'README.md': unknown revision or path not in
the working tree.

As you can see here
(https://github.com/robertodecurnex/git/blob/master/setup.c#L147) git
is trying to `lstat` the path as it was given when it should validate
the file existence within the work tree (perpending the work-tree
before the file name).

Note: I now several workarounds for this, I'm not looking for a
solution to the specific problem but to discuss the implementation and
evaluate a change over the current behavior.

Regards,
--
Roberto Decurnex
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v3 3/3] Make 'git help everyday' work

2014-09-29 Thread Philip Oakley
The Everyday GIT With 20 Commands Or So is not accessible via the
Git help system.  Move everyday.txt to giteveryday.txt so that git
help everyday works, and create a new placeholder file everyday.html
to refer people who follow existing URLs to the updated location.

giteveryday.txt now formats well with AsciiDoc as a man page and
refreshed content to a more command modern style.

Add 'everyday' to the help --guides list and update git(1) and 5
other links to giteveryday.

Signed-off-by: Philip Oakley philipoak...@iee.org
---
 Documentation/Makefile |   3 +-
 Documentation/everyday.txt | 447 -
 Documentation/everyday.txto|   9 +
 Documentation/git-push.txt |   2 +-
 Documentation/git.txt  |   4 +-
 Documentation/gitcore-tutorial.txt |   2 +-
 Documentation/gitcvs-migration.txt |   2 +-
 Documentation/giteveryday.txt  | 447 +
 Documentation/gitglossary.txt  |   2 +-
 Documentation/gittutorial-2.txt|   4 +-
 Documentation/gittutorial.txt  |   4 +-
 README |   2 +-
 builtin/help.c |   1 +
 13 files changed, 470 insertions(+), 459 deletions(-)
 delete mode 100644 Documentation/everyday.txt
 create mode 100644 Documentation/everyday.txto
 create mode 100644 Documentation/giteveryday.txt

diff --git a/Documentation/Makefile b/Documentation/Makefile
index 3b56714..8d0f709 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -27,6 +27,7 @@ MAN7_TXT += gitcore-tutorial.txt
 MAN7_TXT += gitcredentials.txt
 MAN7_TXT += gitcvs-migration.txt
 MAN7_TXT += gitdiffcore.txt
+MAN7_TXT += giteveryday.txt
 MAN7_TXT += gitglossary.txt
 MAN7_TXT += gitnamespaces.txt
 MAN7_TXT += gitrevisions.txt
@@ -38,11 +39,11 @@ MAN_TXT = $(MAN1_TXT) $(MAN5_TXT) $(MAN7_TXT)
 MAN_XML = $(patsubst %.txt,%.xml,$(MAN_TXT))
 MAN_HTML = $(patsubst %.txt,%.html,$(MAN_TXT))
 
+OBSOLETE_HTML += everyday.html
 OBSOLETE_HTML += git-remote-helpers.html
 DOC_HTML = $(MAN_HTML) $(OBSOLETE_HTML)
 
 ARTICLES += howto-index
-ARTICLES += everyday
 ARTICLES += git-tools
 ARTICLES += git-bisect-lk2009
 # with their own formatting rules.
diff --git a/Documentation/everyday.txt b/Documentation/everyday.txt
deleted file mode 100644
index cd7f87c..000
--- a/Documentation/everyday.txt
+++ /dev/null
@@ -1,447 +0,0 @@
-giteveryday(7)
-===
-
-NAME
-
-giteveryday - A useful minimum set of commands for Everyday Git
-
-SYNOPSIS
-
-
-Everyday Git With 20 Commands Or So
-
-DESCRIPTION

-
-Git users can broadly be grouped into four categories for the purposes of
-describing here a small set of useful command for everyday Git.
-
-*  STANDALONE,Individual Developer (Standalone) commands are essential
-   for anybody who makes a commit, even for somebody who works alone.
-
-*  If you work with other people, you will need commands listed in
-   the PARTICIPANT,Individual Developer (Participant) section as well.
-
-*  People who play the INTEGRATOR,Integrator role need to learn some
-   more commands in addition to the above.
-
-*  ADMINISTRATION,Repository Administration commands are for system
-   administrators who are responsible for the care and feeding
-   of Git repositories.
-
-
-Individual Developer (Standalone)[[STANDALONE]]

-
-A standalone individual developer does not exchange patches with
-other people, and works alone in a single repository, using the
-following commands.
-
-  * linkgit:git-init[1] to create a new repository.
-
-  * linkgit:git-log[1] to see what happened.
-
-  * linkgit:git-checkout[1] and linkgit:git-branch[1] to switch
-branches.
-
-  * linkgit:git-add[1] to manage the index file.
-
-  * linkgit:git-diff[1] and linkgit:git-status[1] to see what
-you are in the middle of doing.
-
-  * linkgit:git-commit[1] to advance the current branch.
-
-  * linkgit:git-reset[1] and linkgit:git-checkout[1] (with
-pathname parameters) to undo changes.
-
-  * linkgit:git-merge[1] to merge between local branches.
-
-  * linkgit:git-rebase[1] to maintain topic branches.
-
-  * linkgit:git-tag[1] to mark a known point.
-
-Examples
-
-
-Use a tarball as a starting point for a new repository.::
-+
-
-$ tar zxf frotz.tar.gz
-$ cd frotz
-$ git init
-$ 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.::
-+
-
-$ git checkout -b alsa-audio 1
-$ edit/compile/test
-$ git checkout -- curses/ux_audio_oss.c 2
-$ git add curses/ux_audio_alsa.c 3
-$ edit/compile/test
-$ git diff HEAD 4
-$ git commit -a -s 5
-$ edit/compile/test
-$ git diff HEAD^ 6
-$ git commit -a --amend 7
-$ git checkout master 8
-$ git merge alsa-audio 9
-$ git log --since='3 days 

[PATCH v3 0/3] Make 'git help everyday' work

2014-09-29 Thread Philip Oakley
Here's version three of my patches to make 'git help everyday' work.

It's taken awhile. Previous patches at [1] and [2].

Junio has provided guidance on modernisation of the text, which has
been integrated into patch 1.

Patch 2 regularises the OBSOLETE_HTML method in the make file, in line
with the currently queued version on pu.

Finally patch 3 swaps over the everyday.txt to the giteveryday.txt accessible
through the regular help system, and changes over all the links.

This follows from :
Subject: What's cooking in git.git (Sep 2014, #06; Wed, 24)
[...]
 * po/everyday-doc (2014-01-27) 1 commit
 - Make 'git help everyday' work
 
 This may make the said command to emit something, but the source is
 not meant to be formatted into a manual pages to begin with, and
 also its contents are a bit stale.  It may be a good first step in
 the right direction, but needs more work to at least get the
 mark-up right before public consumption.
 
 Waiting for a reroll (thread ending at $gmane/254746)
 

Philip

[1] http://thread.gmane.org/gmane.comp.version-control.git/240286
 [PATCH 0/6] Make 'git help everyday' work
[2] http://thread.gmane.org/gmane.comp.version-control.git/240354
 [PATCH v2] Make 'git help everyday' work

Philip Oakley (3):
  doc: modernise everyday.txt wording and format in man page style
  doc: Makefile regularise OBSOLETE_HTML list building
  Make 'git help everyday' work

 Documentation/Makefile |   6 +-
 Documentation/everyday.txt | 413 --
 Documentation/everyday.txto|   9 +
 Documentation/git-push.txt |   2 +-
 Documentation/git.txt  |   4 +-
 Documentation/gitcore-tutorial.txt |   2 +-
 Documentation/gitcvs-migration.txt |   2 +-
 Documentation/giteveryday.txt  | 447 +
 Documentation/gitglossary.txt  |   2 +-
 Documentation/gittutorial-2.txt|   4 +-
 Documentation/gittutorial.txt  |   4 +-
 README |   2 +-
 builtin/help.c |   1 +
 13 files changed, 472 insertions(+), 426 deletions(-)
 delete mode 100644 Documentation/everyday.txt
 create mode 100644 Documentation/everyday.txto
 create mode 100644 Documentation/giteveryday.txt

-- 
1.9.4.msysgit.0

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v3 2/3] doc: Makefile regularise OBSOLETE_HTML list building

2014-09-29 Thread Philip Oakley
Helped-by: Junio C Hamano gits...@pobox.com
Signed-off-by: Philip Oakley philipoak...@iee.org
---
 Documentation/Makefile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/Documentation/Makefile b/Documentation/Makefile
index cea0e7a..3b56714 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -5,6 +5,7 @@ MAN7_TXT =
 TECH_DOCS =
 ARTICLES =
 SP_ARTICLES =
+OBSOLETE_HTML =
 
 MAN1_TXT += $(filter-out \
$(addsuffix .txt, $(ARTICLES) $(SP_ARTICLES)), \
@@ -37,7 +38,7 @@ MAN_TXT = $(MAN1_TXT) $(MAN5_TXT) $(MAN7_TXT)
 MAN_XML = $(patsubst %.txt,%.xml,$(MAN_TXT))
 MAN_HTML = $(patsubst %.txt,%.html,$(MAN_TXT))
 
-OBSOLETE_HTML = git-remote-helpers.html
+OBSOLETE_HTML += git-remote-helpers.html
 DOC_HTML = $(MAN_HTML) $(OBSOLETE_HTML)
 
 ARTICLES += howto-index
-- 
1.9.4.msysgit.0

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v3 1/3] doc: modernise everyday.txt wording and format in man page style

2014-09-29 Thread Philip Oakley
Refresh the contents of everyday.txt contents to a more modern
command style. Also update the mark-up so that it can be formatted
as a man page with AsciiDoc ready for transfer to the Git guides.
The transfer is in subsequent commits.

Guidance on modernising the command style provided by Junio at [1],
[2] and [3].

[1] Individual Developer, both Standalone and Participant
http://article.gmane.org/gmane.comp.version-control.git/254269
[2] Integrator
http://article.gmane.org/gmane.comp.version-control.git/254502
[3] Administrator
http://article.gmane.org/gmane.comp.version-control.git/254824

Helped-by: Junio C Hamano gits...@pobox.com
Signed-off-by: Philip Oakley philipoak...@iee.org
---
 Documentation/everyday.txt | 246 ++---
 1 file changed, 140 insertions(+), 106 deletions(-)

diff --git a/Documentation/everyday.txt b/Documentation/everyday.txt
index b2548ef..cd7f87c 100644
--- a/Documentation/everyday.txt
+++ b/Documentation/everyday.txt
@@ -1,22 +1,37 @@
+giteveryday(7)
+===
+
+NAME
+
+giteveryday - A useful minimum set of commands for Everyday Git
+
+SYNOPSIS
+
+
 Everyday Git With 20 Commands Or So
-===
 
-Individual Developer (Standalone) commands are essential for
-anybody who makes a commit, even for somebody who works alone.
+DESCRIPTION
+---
+
+Git users can broadly be grouped into four categories for the purposes of
+describing here a small set of useful command for everyday Git.
+
+*  STANDALONE,Individual Developer (Standalone) commands are essential
+   for anybody who makes a commit, even for somebody who works alone.
 
-If you work with other people, you will need commands listed in
-the Individual Developer (Participant) section as well.
+*  If you work with other people, you will need commands listed in
+   the PARTICIPANT,Individual Developer (Participant) section as well.
 
-People who play the Integrator role need to learn some more
-commands in addition to the above.
+*  People who play the INTEGRATOR,Integrator role need to learn some
+   more commands in addition to the above.
 
-Repository Administration commands are for system
-administrators who are responsible for the care and feeding
-of Git repositories.
+*  ADMINISTRATION,Repository Administration commands are for system
+   administrators who are responsible for the care and feeding
+   of Git repositories.
 
 
-Individual Developer (Standalone)[[Individual Developer (Standalone)]]
---
+Individual Developer (Standalone)[[STANDALONE]]
+---
 
 A standalone individual developer does not exchange patches with
 other people, and works alone in a single repository, using the
@@ -24,8 +39,6 @@ following commands.
 
   * linkgit:git-init[1] to create a new repository.
 
-  * linkgit:git-show-branch[1] to see where you are.
-
   * linkgit:git-log[1] to see what happened.
 
   * linkgit:git-checkout[1] and linkgit:git-branch[1] to switch
@@ -45,7 +58,7 @@ following commands.
 
   * linkgit:git-rebase[1] to maintain topic branches.
 
-  * linkgit:git-tag[1] to mark known point.
+  * linkgit:git-tag[1] to mark a known point.
 
 Examples
 
@@ -75,14 +88,12 @@ $ edit/compile/test
 $ git diff HEAD 4
 $ git commit -a -s 5
 $ edit/compile/test
-$ git reset --soft HEAD^ 6
-$ edit/compile/test
-$ git diff ORIG_HEAD 7
-$ git commit -a -c ORIG_HEAD 8
-$ git checkout master 9
-$ git merge alsa-audio 10
-$ git log --since='3 days ago' 11
-$ git log v2.43.. curses/ 12
+$ git diff HEAD^ 6
+$ git commit -a --amend 7
+$ git checkout master 8
+$ git merge alsa-audio 9
+$ git log --since='3 days ago' 10
+$ git log v2.43.. curses/ 11
 
 +
 1 create a new topic branch.
@@ -90,22 +101,21 @@ $ git log v2.43.. curses/ 12
 3 you need to tell Git if you added a new file; removal and
 modification will be caught if you do `git commit -a` later.
 4 to see what changes you are committing.
-5 commit everything as you have tested, with your sign-off.
-6 take the last commit back, keeping what is in the working tree.
-7 look at the changes since the premature commit we took back.
-8 redo the commit undone in the previous step, using the message
-you originally wrote.
-9 switch to the master branch.
-10 merge a topic branch into your master branch.
-11 review commit logs; other forms to limit output can be
+5 commit everything, as you have tested, with your sign-off.
+6 look at all your changes including the previous commit.
+7 amend the previous commit, adding all your new changes,
+using your original message.
+8 switch to the master branch.
+9 merge a topic branch into your master branch.
+10 review commit logs; other forms to limit output can be
 combined and include `--max-count=10` (show 10 commits),
 `--until=2005-12-10`, etc.
-12 view only the changes that touch what's in `curses/`
+11 

Re: [PATCH] Ensure SHELL_PATH is the hash bang for test suite askpass helper script.

2014-09-29 Thread Jeff King
On Mon, Sep 29, 2014 at 08:02:07AM +0100, Ben Walton wrote:

 The askpass script that is created for use by the test suite should
 use SHELL_PATH for its hash bang instead of /bin/sh. Commit 5a4352024
 introduced the use of idioms not supported in some legacy /bin/sh
 implementations.
 
 Use write_script to ensure this happens automatically. This lets us
 remove the chmod step as well, since write_script handles that.
 
 Signed-off-by: Ben Walton bdwal...@gmail.com

Thanks, this looks good to me.

-Peff
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] Do not make trace.c/getnanotime an inlined function

2014-09-29 Thread Junio C Hamano
Duy Nguyen pclo...@gmail.com writes:

 On Sun, Sep 28, 2014 at 2:50 PM, Ben Walton bdwal...@gmail.com wrote:
 Oracle Studio compilers don't allow for static variables in functions
 that are defined to be inline. GNU C does permit this. Let's reference
 the C99 standard though, which doesn't allow for inline functions to
 contain modifiable static variables.

 Signed-off-by: Ben Walton bdwal...@gmail.com
 ---
  trace.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

 diff --git a/trace.c b/trace.c
 index b6f25a2..4778608 100644
 --- a/trace.c
 +++ b/trace.c
 @@ -385,7 +385,7 @@ static inline uint64_t gettimeofday_nanos(void)
   * Returns nanoseconds since the epoch (01/01/1970), for performance tracing
   * (i.e. favoring high precision over wall clock time accuracy).
   */
 -inline uint64_t getnanotime(void)
 +uint64_t getnanotime(void)
  {
 static uint64_t offset;

 Would moving this offset outside getnanotime() work?

I am not sure what the definition of work is.

The function computes the difference between the returned value from
gettimeofday(2) and a custom highres_nanos() just once and returns
the value it got from gettimeofday the first time, and then for
subsequent calls massages the returned value from highres_nanos() to
be consistent with the value returned from gettimeofday using the
offset it computed in the first call.

If we have two copies of this function, two independent probes to
these pair of underlying functions will be made to compute their
offsets.  With perfect pair of clocks that may not matter, but it
just feels wrong to me.

Besides, I wonder what happens if the computed offset happen to be
1, which is used as a sentinel.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] Ensure SHELL_PATH is the hash bang for test suite askpass helper script.

2014-09-29 Thread Junio C Hamano
Ben Walton bdwal...@gmail.com writes:

 The askpass script that is created for use by the test suite should
 use SHELL_PATH for its hash bang instead of /bin/sh. Commit 5a4352024
 introduced the use of idioms not supported in some legacy /bin/sh
 implementations.

 Use write_script to ensure this happens automatically. This lets us
 remove the chmod step as well, since write_script handles that.

 Signed-off-by: Ben Walton bdwal...@gmail.com
 ---

I'll leave out the some legacy shells we do not support want to use
`command` from the justification of this change.  Use of the
write_script helper is the right thing to do---$SHELL_PATH points at
the shell the user told us s/he wants to use, and that is a reason
enough for this change.  The reason why the user wants to use that
shell is immaterial.

Thanks.


  t/lib-credential.sh | 4 +---
  1 file changed, 1 insertion(+), 3 deletions(-)

 diff --git a/t/lib-credential.sh b/t/lib-credential.sh
 index 9e7d796..d8e41f7 100755
 --- a/t/lib-credential.sh
 +++ b/t/lib-credential.sh
 @@ -278,12 +278,10 @@ helper_test_timeout() {
   '
  }
  
 -cat askpass \EOF
 -#!/bin/sh
 +write_script askpass \EOF
  echo 2 askpass: $*
  what=$(echo $1 | cut -d  -f1 | tr A-Z a-z | tr -cd a-z)
  echo askpass-$what
  EOF
 -chmod +x askpass
  GIT_ASKPASS=$PWD/askpass
  export GIT_ASKPASS
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: `git log relative_path_to_object` does not respect the --work-tree path

2014-09-29 Thread Junio C Hamano
Roberto Eduardo Decurnex Gorosito decurnex.robe...@gmail.com
writes:

 ~/path$ git --work-tree=~/path/to_repo log README.md

This does not seem to specify GIT_DIR explicitly (either with the
$GIT_DIR environment variable or the --git-dir option), so I would
assume that you are sitting in a directory that has .git/
subdirectory or a subdirectory of such a directory, but that .git/
is not a real repository that controls the working tree you have at
the ~/path/to_repo directory.

The --work-tree option and $GIT_WORK_TREE environment were primarily
invented to solve this problem:

When a user gives $GIT_DIR or --git-dir to disable the
repository discovery (i.e. trying to see if the current
directory has .git/ that looks like a repository, and if not
try the parent directory until we find one), traditionally we
assumed that the current directory is the top-level of the
corresponding working tree.  This makes it cumbersome to work
inside a subdirectory, and by allowing $GIT_WORK_TREE or
--work-tree to specify the top-level of the working tree,
working from a subdirectory of a working tree becomes usable
again.

That is why it does not mix very well with repository discovery
(i.e.  letting Git crawl upward from the current directory to find a
directory with .git/).  It is unclear if the auto-discovered
.git is the one to be be consulted for the log operation you
asked, or the other repository you have at ~/path/to_repo/.git (or
one of its parent directories, e.g. ~/path/.git).  I _think_ the
current implementation randomly chose to use the auto-discovered
one, but it may have been better to forbid and always require both
--git-dir and --work-tree to be given to avoid confusion.





--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: `git log relative_path_to_object` does not respect the --work-tree path

2014-09-29 Thread Roberto Eduardo Decurnex Gorosito
Sorry, I left the --git-dir out of the example. I do set the --git-dir
(and $GIT_DIR sometimes) too.

It gives the same results. That's why I feels like it shouldn't be
working as it is.

In this specific case (log with object filter) the environment config
is completely ignored.

On Mon, Sep 29, 2014 at 3:06 PM, Junio C Hamano gits...@pobox.com wrote:
 Roberto Eduardo Decurnex Gorosito decurnex.robe...@gmail.com
 writes:

 ~/path$ git --work-tree=~/path/to_repo log README.md

 This does not seem to specify GIT_DIR explicitly (either with the
 $GIT_DIR environment variable or the --git-dir option), so I would
 assume that you are sitting in a directory that has .git/
 subdirectory or a subdirectory of such a directory, but that .git/
 is not a real repository that controls the working tree you have at
 the ~/path/to_repo directory.

 The --work-tree option and $GIT_WORK_TREE environment were primarily
 invented to solve this problem:

 When a user gives $GIT_DIR or --git-dir to disable the
 repository discovery (i.e. trying to see if the current
 directory has .git/ that looks like a repository, and if not
 try the parent directory until we find one), traditionally we
 assumed that the current directory is the top-level of the
 corresponding working tree.  This makes it cumbersome to work
 inside a subdirectory, and by allowing $GIT_WORK_TREE or
 --work-tree to specify the top-level of the working tree,
 working from a subdirectory of a working tree becomes usable
 again.

 That is why it does not mix very well with repository discovery
 (i.e.  letting Git crawl upward from the current directory to find a
 directory with .git/).  It is unclear if the auto-discovered
 .git is the one to be be consulted for the log operation you
 asked, or the other repository you have at ~/path/to_repo/.git (or
 one of its parent directories, e.g. ~/path/.git).  I _think_ the
 current implementation randomly chose to use the auto-discovered
 one, but it may have been better to forbid and always require both
 --git-dir and --work-tree to be given to avoid confusion.





--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Will you come?? urgent, we must know

2014-09-29 Thread Anna Papadimitriou
Dear Invited Authors

After my previous email, we want to clarify some things:

1)  Invited Authors represent only a 3-5% of our authors, 
see for example the papers with Italics here:  
http://www.wseas.org/main/conferences/2014/Salerno/Program.pdf )

2) Invited Authors are selected very carefully according their recent 
publications and citations and
they must fit to the topics of the conference.

3) You can discuss details with our Professors-Organizers in Lisbon after the 
opening (in the morning of the first day)

4) The list with the ISI Journals that host the extended papers are more and 
more longer. We started with 6 ISI Journals in March of 2014 and now we have 
collaboration with 19. So, practically, all the papers will be hosted in these 
ISI Journals. 

There are several topics in our conferences in Lisbon. So, select one of our 
conferences in Lisbon via 
http://www.wseas.org/wseas/cms.action?id=4#Conferences  and upload your invited 
paper 
We must have the full paper until October 5 (for Invited Speakers)
(Maximum 10 pages. Format see the web page of the conference)

Invited Authors have
==
a) Additional publication in ISI, SCOPUS Journal. You select the Journal where 
you can publish the extended version of your paper.

b) Priority in the conference program

c) Double time for presentation

d) Invited Papers are noted explicitly in the conference program as Invited 
Papers

e) Invited Authors can be included in the Program Committee of our future 
conferences of 2015

After uploading your invited paper, send an email (using your email address 
git@vger.kernel.org) to me to mark your paper as invited in the data base

Indexing
===
ISI (Thomson Reuters), ELSEVIER, SCOPUS, ACM -  Association for Computing 
Machinery, Zentralblatt MATH, British Library, EBSCO, SWETS, EMBASE, CAS - 
American Chemical Society, CiteSeerx, Cabell Publishing, Electronic Journals, 
Library, SAO/NASA Astrophysics Data System
EI Compendex, Engineering Village, CSA Cambridge Scientific Abstracts, DoPP, 
GEOBASE, Biobase, American Mathematical Society (AMS), Inspec - The IET, 
Ulrich's International Periodicals Directory


NEW: We have already finished agreements with 19 ISI Journals (with Impact
Factor from ISI Web of Knowledge) that will take the extended versions of all 
the papers after the conference. Our Team works very hard for the indexing of 
all the accepted papers in ISI and SCOPUS
and we have impressive results.

Best Regards

Anna Papadimitriou
WSEAS Editorial Office
www.wseas.org

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2] Documentation/git-rebase.txt: discuss --fork-point assumption of vanilla git rebase in DESCRIPTION.

2014-09-29 Thread Sergey Organov
Junio C Hamano gits...@pobox.com writes:
 Sergey Organov sorga...@gmail.com writes:


[...]

 As asked by Junio C Hamano gits...@pobox.com, the newly introduced
 'fork_point' term has been described.


 I suspect will be used as a fallback might be easier to understand
 what is going on instead of will be used instead, but other than
 that, the new explanation of what fork-point is is a very welcome
 update, I think.

Yeah, sure. Wasn't satisfied with the wording myself.

[...]

 The patch failed to apply

Sorry about it.

 Applying: Documentation/git-rebase.txt: discuss --fork-point assumption of 
 vanilla git rebase in DESCRIPTION.
 fatal: corrupt patch at line 38

I rather get:

$ git apply x.patch
x.patch:38: trailing whitespace.
introduced by branch. 
warning: 1 line adds whitespace errors.

I've used 'git format-patch' to prepare the patch. Shouldn't it warn
about such things? Or what should I do to avoid such problems in the
future? 


 but the fix-up is trivial, so no need to resend.

Thanks.

-- 
Sergey.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] Do not make trace.c/getnanotime an inlined function

2014-09-29 Thread Johannes Sixt
Am 28.09.2014 um 22:42 schrieb Ben Walton:
 On Sun, Sep 28, 2014 at 8:15 PM, Johannes Sixt j...@kdbg.org
 mailto:j...@kdbg.org wrote:
 Am 28.09.2014 um 09:50 schrieb Ben Walton:
  -inline uint64_t getnanotime(void)
  +uint64_t getnanotime(void)
 
 But then the function could stay static, no?
 
 
 This function is used in several places outside of the translation unit
 so while it's possible, I think it's more work than it's worth...

I see. I didn't check myself, sorry. I assumed that due to the 'inline'
the function would not have been available outside. Now your patch looks
good.

Thanks,
-- Hannes

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [msysGit] [PATCH 12/14] Fix pointer - integer casts on IL32P64 systems

2014-09-29 Thread Johannes Sixt
Am 28.09.2014 um 15:24 schrieb Marat Radchenko:
 This commit touches regcomp.c and poll.c from Gnulib,
 both were fixed upstream in 2012 the same way.
 
 Wrt ShellExecute, see [1].
 
 [1]: http://blogs.msdn.com/b/oldnewthing/archive/2006/11/08/1035971.aspx

Please do not force readers to visit a web site; provide at least a summary.

 
 Signed-off-by: Marat Radchenko ma...@slonopotamus.org
 ---

 diff --git a/compat/regex/regcomp.c b/compat/regex/regcomp.c
 index 06f3088..d8bde06 100644
 --- a/compat/regex/regcomp.c
 +++ b/compat/regex/regcomp.c
 @@ -2577,7 +2577,7 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, 
 re_dfa_t *dfa,
  old_tree = NULL;
  
if (elem-token.type == SUBEXP)
 -postorder (elem, mark_opt_subexp, (void *) (long) elem-token.opr.idx);
 +postorder (elem, mark_opt_subexp, (void *) (intptr_t) 
 elem-token.opr.idx);
  
tree = create_tree (dfa, elem, NULL, (end == -1 ? OP_DUP_ASTERISK : 
 OP_ALT));
if (BE (tree == NULL, 0))
 @@ -3806,7 +3806,7 @@ create_token_tree (re_dfa_t *dfa, bin_tree_t *left, 
 bin_tree_t *right,
  static reg_errcode_t
  mark_opt_subexp (void *extra, bin_tree_t *node)
  {
 -  int idx = (int) (long) extra;
 +  int idx = (int) (intptr_t) extra;
if (node-token.type == SUBEXP  node-token.opr.idx == idx)
  node-token.opt_subexp = 1;
  

This breaks with

In file included from compat/regex/regex.c:77:
compat/regex/regcomp.c: In function 'parse_dup_op':
compat/regex/regcomp.c:2580: error: 'intptr_t' undeclared (first use in
this function)

when compiled using the msysgit environment.

-- Hannes

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: `git log relative_path_to_object` does not respect the --work-tree path

2014-09-29 Thread Jonathan Nieder
Hi Roberto,

Roberto Eduardo Decurnex Gorosito wrote:

 When passing objects to the `git log`, by just naming them or using
 the `--objects` option, relative paths are evaluated using the current
 working directory instead of the current working tree path.

Why should they be relative to the worktree root?  When you use
relative paths within a worktree, they are not relative to the
worktree root.  For example, the following works within a clone of
git.git:

$ cd Documentation
$ git log git.txt

You might be looking for 'git -C directory', which chdirs to the
named directory so paths are relative to there.

Hope that helps,
Jonathan
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Git for Windows 1.9.4.msysgit.2

2014-09-29 Thread Thomas Braun
Hi,

the Git for Windows team just released the third maintenance release of
the Windows-specific installers for git 1.9.4.

It can be downloaded from the usual place [1] and I also attached some
unsigned SHA sums [2].

New Features
- Comes with Git 1.9.4 plus Windows-specific patches.

Bugfixes
- Update bash to patchlevel 3.1.20(4) (msysgit PR#254, msysgit issue #253).
  Fixes CVE-2014-6271, CVE-2014-7169, CVE-2014-7186 and CVE-2014-7187.
- gitk.cmd now works when paths contain the ampersand () symbol (msysgit PR 
#252)
- Default to automatically close and restart applications in silent mode 
installation type
- Git svn is now usable again (regression in previous update, msysgit PR#245)

Have phun,
Thomas

[1]: 
https://github.com/msysgit/msysgit/releases/download/Git-1.9.4-preview20140929/Git-1.9.4-preview20140929.exe
[2]: SHA1(Git-1.9.4-preview20140929.exe)= 
a7a50a18992a56de193e048b0205bf21b6721554
 SHA1(PortableGit-1.9.4-preview20140929.7z)= 
4b0698f2bf96b0dd64ecec477b3db9e3b3d46085
 SHA1(msysGit-netinstall-1.9.4-preview20140929.exe)= 
73ad668013941863e80e74bcf853d53eeed69714
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [BUG] (git commit --patch --message $MESSAGE) disallows hunk editing

2014-09-29 Thread Max Nanasy
Max Nanasy max.nanasy at gmail.com writes:

 
 Tested against v1.7.12.4
 
 Steps to reproduce:
   A. cd $DIRTY_WORKING_COPY
   B. git commit --patch --message $MESSAGE
   C. Stage this hunk? e
 Expected behavior:
   After step C, the hunk opens in the user's editor
 Actual behavior:
   After step C, the hunk is selected unedited (as if the user had entered 
 y)
 
 AFAICT, this occurs because of the following code in
 builtin/commit.c:parse_and_validate_options:
   if (... || message.len || ...)
   use_editor = 0;
   ...
   if (!use_editor)
   setenv(GIT_EDITOR, :, 1);
 Because --message is specified, GIT_EDITOR is set to :, which
 prevents the user from editing hunks, although the intent is most
 likely to just prevent the user from editing the commit message.
 

It appears that this was fixed in version 2.0.  The changelog entry says:

 * When it is not necessary to edit a commit log message (e.g. git
   commit -m is given a message without specifying -e), we used to
   disable the spawning of the editor by overriding GIT_EDITOR, but
   this means all the uses of the editor, other than to edit the
   commit log message, are also affected.
   (merge b549be0 bp/commit-p-editor later to maint).

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v3 1/3] doc: modernise everyday.txt wording and format in man page style

2014-09-29 Thread Junio C Hamano
Philip Oakley philipoak...@iee.org writes:

 @@ -45,7 +58,7 @@ following commands.
  
* linkgit:git-rebase[1] to maintain topic branches.
  
 -  * linkgit:git-tag[1] to mark known point.
 +  * linkgit:git-tag[1] to mark a known point.

I really appreciate your attention to details here.

 +10 review commit logs; other forms to limit output can be
  combined and include `--max-count=10` (show 10 commits),
  `--until=2005-12-10`, etc.

s/--max-count=//; perhaps?

 @@ -131,27 +145,34 @@ Clone the upstream and work on it.  Feed changes to 
 upstream.::
  
  $ git clone git://git.kernel.org/pub/scm/.../torvalds/linux-2.6 my2.6
  $ cd my2.6
 +$ git checkout -b mine master 1
 +$ edit/compile/test; git commit -a -s 2
 +$ git format-patch master 3
 +$ git send-email --to=person em...@example.com 00*.patch 4
 +$ git pull 5

This may be found somewhat questionable by some people, as mine
does not build on the master at origin.  Insert git checkout master
before this step to cause 5 update the pristine copy of their
master, perhaps?  That way, the next step

 +$ git log -p ORIG_HEAD.. arch/i386 include/asm-i386 6

starts making more sense.

 +$ git fetch --tags 11
 ...
 +11 from time to time, obtain official tags from the `origin`
  and store them under `.git/refs/tags/`.

I am not sure if fetch --tags still needs to be taught, especially
in a quick guide document, because fetch has auto-followed
relevant tags for a long time since the original version of this
document was written.

 +3 arrange `git push` to push all local branches to
 +their corresponding branch of the mothership machine.
 +4 push will stash all our work away on `remotes/satellite/*`
 +remote-tracking branches on the mothership machine.  You could use this
  as a back-up method.

The original mentions a back-up method, but a larger benefit of
this kind of settings is that it lets you pretend that mothership
fetched from you.

We may want to say You can use this to pretend as if the origin,
aka mothership, ran 'git fetch' from you, aka satellite.  This is
especially true because the next step 5 is about how to integrate
your work done on 'satellite' into 'mothership' that cannot fetch
from 'satellite' (imagine satellite is behind a NAT and it can only
ssh out to mothership but not the other way around).

 -Integrator[[Integrator]]
 +Integrator[[INTEGRATOR]]
  
  
  A fairly central person acting as the integrator in a group
 @@ -213,6 +235,9 @@ project receives changes made by others, reviews and 
 integrates
  them and publishes the result for others to use, using these
  commands in addition to the ones needed by participants.
  
 +This section can also be applied to a git-request-pull workflow,
 +or the GitHub (www.github.com) pull-request flow.

Clarify which end of that workflow this can be applied, perhaps?
E.g. ... also be used by the person who responds to 'git
request-pull' or pull-request on GitHub to integrate others' work
into your history.


 @@ -225,23 +250,26 @@ commands in addition to the ones needed by participants.
  
* linkgit:git-push[1] to publish the bleeding edge.
  
 +  * linkgit:git-request-pull[1] to create a summary of changes
 +for your upstream to pull.
 +

This new item looks somewhat out of place, doesn't it?  It is
because this is a participant item, not an integrator item.

Yes, I know a sub-area lieutenant would request a pull by the
top-level maintainer, but when you interact with your 'upstream',
you are not acting as an integrator.

If you really want to add request-pull to common 20-or-so commands,
it would make more sense to do so in the participant's section and
to explain that an sub-area lieutenant acts both as a participant
and as an integrator.

Thanks.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


What's cooking in git.git (Sep 2014, #08; Mon, 29)

2014-09-29 Thread Junio C Hamano
Here are the topics that have been cooking.  Commits prefixed with
'-' are only in 'pu' (proposed updates) while commits prefixed with
'+' are in 'next'.

You can find the changes described here in the integration branches
of the repositories listed at

http://git-blame.blogspot.com/p/git-public-repositories.html

--
[Graduated to master]

* da/rev-parse-verify-quiet (2014-09-19) 4 commits
  (merged to 'next' on 2014-09-23 at 5ed184a)
 + stash: prefer --quiet over shell redirection of the standard error stream
 + refs: make rev-parse --quiet actually quiet
 + t1503: use test_must_be_empty
 + Documentation: a note about stdout for git rev-parse --verify --quiet

 rev-parse --verify --quiet $name is meant to quietly exit with a
 non-zero status when $name is not a valid object name, but still
 gave error messages in some cases.


* hj/pretty-naked-decoration (2014-09-18) 1 commit
  (merged to 'next' on 2014-09-23 at fb699c4)
 + pretty: add %D format specifier

 The pretty-format specifier %d, which expanded to  (tagname)
 for a tagged commit, gained a cousin %D that just gives the
 tagname without frills.


* jk/mbox-from-line (2014-09-22) 2 commits
  (merged to 'next' on 2014-09-23 at 506b89b)
 + mailinfo: work around -Wstring-plus-int warning
  (merged to 'next' on 2014-09-19 at 314af77)
 + mailinfo: make From in-body header check more robust

 Some MUAs mangled a line in a message that begins with From  to
 From  when writing to a mailbox file and feeding such an input
 to git am used to lose such a line.


* rs/graph-simplify (2014-09-22) 1 commit
  (merged to 'next' on 2014-09-23 at 72969e2)
 + graph: simplify graph_padding_line()


* rs/remote-simplify (2014-09-22) 1 commit
  (merged to 'next' on 2014-09-23 at 176e316)
 + remote: simplify match_name_with_pattern() using strbuf


* sb/t6031-typofix (2014-09-22) 1 commit
  (merged to 'next' on 2014-09-23 at aec57a9)
 + t6031-test-merge-recursive: do not forget to add file to be committed


* sb/t9300-typofix (2014-09-22) 1 commit
  (merged to 'next' on 2014-09-23 at aa519bd)
 + t9300-fast-import: fix typo in test description

--
[New Topics]

* bw/use-write-script-in-tests (2014-09-29) 1 commit
  (merged to 'next' on 2014-09-29 at be4056e)
 + t/lib-credential: use write_script

 Will merge to 'master'.


* bw/trace-no-inline-getnanotime (2014-09-29) 1 commit
 - trace.c: do not mark getnanotime() as inline

 No file-scope static variables in an inlined function, please.

--
[Stalled]

* rs/ref-transaction (2014-09-12) 20 commits
 . remote rm/prune: print a message when writing packed-refs fails
 . ref_transaction_commit: bail out on failure to remove a ref
 . lockfile: remove unable_to_lock_error
 . refs.c: do not permit err == NULL
 . for-each-ref.c: improve message before aborting on broken ref
 . refs.c: fix handling of badly named refs
 . branch -d: avoid repeated symref resolution
 . refs.c: change resolve_ref_unsafe reading argument to be a flags field
 . refs.c: make write_ref_sha1 static
 . fetch.c: change s_update_ref to use a ref transaction
 . refs.c: ref_transaction_commit: distinguish name conflicts from other errors
 . refs.c: pass a skip list to name_conflict_fn
 . refs.c: call lock_ref_sha1_basic directly from commit
 . refs.c: move the check for valid refname to lock_ref_sha1_basic
 . rename_ref: don't ask read_ref_full where the ref came from
 . refs.c: pass the ref log message to _create/delete/update instead of _commit
 . refs.c: add an err argument to delete_ref_loose
 . wrapper.c: add a new function unlink_or_msg
 . wrapper.c: remove/unlink_or_warn: simplify, treat ENOENT as success
 . mv test: recreate mod/ directory instead of relying on stale copy

 Rerolled and was asked to wait.  Seems to break HEAD reflog
 upon checkout HEAD^0.

 Expecting another reroll.


* tr/remerge-diff (2014-09-08) 8 commits
 - log --remerge-diff: show what the conflict resolution changed
 - name-hash: allow dir hashing even when !ignore_case
 - merge-recursive: allow storing conflict hunks in index
 - merge_diff_mode: fold all merge diff variants into an enum
 - combine-diff: do not pass revs-dense_combined_merges redundantly
 - merge-recursive: -Xindex-only to leave worktree unchanged
 - merge-recursive: internal flag to avoid touching the worktree
 - merge-recursive: remove dead conditional in update_stages()

 log -p output learns a new way to let users inspect a merge
 commit by showing the differences between the automerged result
 with conflicts the person who recorded the merge would have seen
 and the final conflict resolution that was recorded in the merge.

 Waiting for a reroll ($gmane/256591).


* hv/submodule-config (2014-06-30) 4 commits
 - do not die on error of parsing fetchrecursesubmodules option
 - use new config API for worktree configurations of submodules
 - extract functions for 

Strange behavior of git rev-list --first-parent --ancesty-path

2014-09-29 Thread Василий Макаров
Hello!

Imagine following tree:
A--B--C
 \  /
  D--E
B is parent #1 of C.

git rev-list --first-parent --ancestry-path D..C returns zero commits.
This is correct, since one cannot find any commits between D and C
traversing tree by first parent.
git rev-list --first-parent --ancestry-path E..C returns SHA of C.
This is strange, because --ancestry-path should restrict output to
commits being both ancestors of C and descendants of E.

Git did not return me any errors or warnings so I'm assuming that
--first-parent and --ancestry-path are OK to be used together.

So, is it a git bug or I'm doing smth wrong?
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html