Re: [PATCH 3/3] grep: stop looking at random places for .gitattributes

2012-10-11 Thread Michael Haggerty
On 10/11/2012 07:55 AM, Johannes Sixt wrote:
 Am 10/10/2012 21:44, schrieb Junio C Hamano:
 Johannes Sixt j.s...@viscovery.net writes:

 Is there already an established definition which the correct
 .gitattributes are?

 No, and it is deliberately kept vague while waiting for us to come
 up with a clear definition of what is correct.
 ...
 Very often, people
 retroactively define attributes to correct earlier mistakes.
 
 Absolutely. I have Windows resource files that are Shift-JIS encoded
 checked in long ago, and I want to retoactively declare them with
 encoding=Shift-JIS because I prefer to see Japanese script in gitk
 rather than gibberish.

Maybe I'm being too much of a purist, but I don't think that git should
retroactively reinterpret history on its own initiative in a way that
might not be correct (e.g., maybe your encoding changed from ASCII to
Shift-JIS sometime in the past).  It would be more appropriate for this
to happen only if explicitly requested by the user.  For example, why
don't you override the incorrect historical attributes via
.git/info/attributes?

Michael

-- 
Michael Haggerty
mhag...@alum.mit.edu
http://softwareswirl.blogspot.com/
--
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 0/7] Tying loose ends on grep-pcre

2012-10-11 Thread Michael Haggerty
On 10/10/2012 06:52 PM, Junio C Hamano wrote:
 Michael Haggerty mhag...@alum.mit.edu writes:
 
 The last one teaches git log family to honor the grep.*
 configuration variables, e.g. grep.patterntype, so that you can
 say git -c grep.patterntype=perl log --grep='(?:pcre)'.

 Maybe this has been discussed already, but it seems to me that adding a
 persistent setting that affects how git log --grep interprets the
 pattern argument could break some scripts that assume that the old
 interpretation is always used.  Shouldn't this at least be documented as
 a backwards incompatibility?
 
 If somebody scripts around log with hardcoded query --grep=...
 strings, they can force a particular variant from such a command
 line at the same time.  But as always, responsibility of doing so is
 on the person who writes such a script; log being a Porcelain, we
 value ease-of-use in interactive case more than cast-in-stone
 interface stability like we do for plumbing commands.
 
 And that is exactly why the series avoids changing the behaviour for
 the rev-list plumbing.

OK, you've convinced me.  Thanks.

Michael

-- 
Michael Haggerty
mhag...@alum.mit.edu
http://softwareswirl.blogspot.com/
--
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 3/3] grep: stop looking at random places for .gitattributes

2012-10-11 Thread Nguyen Thai Ngoc Duy
On Thu, Oct 11, 2012 at 2:04 PM, Michael Haggerty mhag...@alum.mit.edu wrote:
 Maybe I'm being too much of a purist, but I don't think that git should
 retroactively reinterpret history on its own initiative in a way that
 might not be correct (e.g., maybe your encoding changed from ASCII to
 Shift-JIS sometime in the past).  It would be more appropriate for this
 to happen only if explicitly requested by the user.  For example, why
 don't you override the incorrect historical attributes via
 .git/info/attributes?

I think git-notes is a more appropriate place to correct these things.
If the incorrect commits are pruned, their notes can also be pruned.
No poluttion in $GIT_DIR/info/attr.. And i'm your side, no checking
worktree without user's permission.
-- 
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


[BUG] git commit after cherry-pick -n conflict clobbers .git/COMMIT_EDITMSG

2012-10-11 Thread Yann Dirson
(only tested with 1.7.10.x for now)

~/softs/linux$ echo foo  .git/COMMIT_EDITMSG
~/softs/linux$ git cherry-pick -n b55f3d92cd
error: could not apply b55f3d9... Linux 2.6.32.26
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add paths' or 'git rm paths'
~/softs/linux$ cat .git/COMMIT_EDITMSG
foo

So far, so good.  But then git commit brings me the message from the
cherry-picked commit plus the list of conflicted files, and I can verify that
it is now the contents of .git/COMMIT_EDITMSG.

Surely the fact I passed -n should prevent cloberring the message, even in the
event of a conflict.  I suppose that would imply not creating .git/MERGE_MSG in 
that
case, but just removing it still causes .git/COMMIT_EDITMSG to be clobbered, 
this
time with nothing but the git status-derived comments.

-- 
Yann Dirson - Bertin Technologies
--
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: rebase fails mid way through due to locally modified file?

2012-10-11 Thread Peter Krefting

skillz...@gmail.com:


I frequently see rebase fail after applying several commits because
git thinks there are local changes.


What operating system are you running on? I have seen simlar issues on 
Windows, which has a case-insensitive file system, in repositories 
where file names have either changed just the casing of their names, 
or there has been several files where the only difference in names 
were only character casing.


--
\\// Peter - http://www.softwolves.pp.se/
--
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: push.default documented in man git-push?

2012-10-11 Thread Nguyen Thai Ngoc Duy
On Fri, Oct 05, 2012 at 01:03:28PM -0700, Junio C Hamano wrote:
  OK. I think I was surprised that some messages were controlled by
  advice.* but gave no hints about that and I found that out by other
  means. I'll check all the advice messages.
 
  It's about the commands, not the documents. For example I had no idea
  I could set advice.statusHints to turn off some advice. git status
  does not say that those messages can be turned off.
 
 OK, the messages are supposed to advise how to turn them off, so we
 would want some code updates in that case.

Something like this? It turns out none of the advice messages says
anything about advice.*.

This patch makes many output more verbose/annoying, (which is good,
more motivation to turn advice off). On the other hand, if a user sees
a message telling her/him to turn advice.statusHints off, (s)he may
miss other helpful advice as it turns the whole set off. I don't know
if that is good or bad for newbies.

Tests are broken due to output changes. Will fix it if it may have a
chance of entering git.git.

There are two advise() calls in sequencer.c that we may want to
trigger with a new advice config, by the way.

-- 8 --
diff --git a/advice.c b/advice.c
index edfbd4a..5b78c01 100644
--- a/advice.c
+++ b/advice.c
@@ -70,7 +70,8 @@ int error_resolve_conflict(const char *me)
advise(_(Fix them up in the work tree,\n
 and then use 'git add/rm file' as\n
 appropriate to mark resolution and make a commit,\n
-or use 'git commit -a'.));
+or use 'git commit -a'.\n
+Set advice.resolveConflict to false to turn off this 
message.));
return -1;
 }
 
@@ -89,7 +90,9 @@ void detach_advice(const char *new_name)
state without impacting any branches by performing another 
checkout.\n\n
If you want to create a new branch to retain commits you create, you 
may\n
do so (now or later) by using -b with the checkout command again. 
Example:\n\n
- git checkout -b new_branch_name\n\n;
+ git checkout -b new_branch_name\n
+   Set either advice.detachedHead to false to turn off this message\n\n
+;
 
fprintf(stderr, fmt, new_name);
 }
diff --git a/builtin/checkout.c b/builtin/checkout.c
index 781295b..a805961 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -699,7 +699,9 @@ static void suggest_reattach(struct commit *commit, struct 
rev_info *revs)
_(
If you want to keep them by creating a new branch, 
this may be a good time\nto do so with:\n\n
-git branch new_branch_name %s\n\n),
+git branch new_branch_name %s\n
+   Set either advice.detachedHead to false
+to turn off this message\n\n),
sha1_to_hex(commit-object.sha1));
 }
 
diff --git a/builtin/commit.c b/builtin/commit.c
index a17a5df..5a4d85f 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -50,7 +50,8 @@ N_(Your name and email address were configured automatically 
based\n
 \n
 After doing this, you may fix the identity used for this commit with:\n
 \n
-git commit --amend --reset-author\n);
+git commit --amend --reset-author\n
+Set either advice.implicitIdentity to false to turn off this message\n);
 
 static const char empty_amend_advice[] =
 N_(You asked to amend the most recent commit, but doing so would make\n
diff --git a/builtin/merge.c b/builtin/merge.c
index 0ec8f0d..754f51e 100644
--- a/builtin/merge.c
+++ b/builtin/merge.c
@@ -1227,14 +1227,18 @@ int cmd_merge(int argc, const char **argv, const char 
*prefix)
 */
if (advice_resolve_conflict)
die(_(You have not concluded your merge (MERGE_HEAD 
exists).\n
- Please, commit your changes before you can 
merge.));
+ Please, commit your changes before you can 
merge.\n
+ Set advice.resolveConflict to false
+  to turn off this message\n));
else
die(_(You have not concluded your merge (MERGE_HEAD 
exists).));
}
if (file_exists(git_path(CHERRY_PICK_HEAD))) {
if (advice_resolve_conflict)
die(_(You have not concluded your cherry-pick 
(CHERRY_PICK_HEAD exists).\n
-   Please, commit your changes before you can 
merge.));
+   Please, commit your changes before you can 
merge.\n
+ Set advice.resolveConflict to false
+  to turn off this message\n));
else
die(_(You have not concluded your cherry-pick 
(CHERRY_PICK_HEAD exists).));
}
diff --git a/builtin/push.c b/builtin/push.c

Re: [PATCH 1/3] quote: let caller reset buffer for quote_path_relative()

2012-10-11 Thread Nguyen Thai Ngoc Duy
On Thu, Oct 11, 2012 at 4:13 AM, Junio C Hamano gits...@pobox.com wrote:
 This sounds a lot stronger than let to me.  All existing callers
 that assumed that buf to be emptied by the function now has to clear
 it.  quote: stop resetting output buffer of quote_path_relative()
 may better describe what this really does.

 How should this interact with the logic in the called function that
 used to say if we ended up returning an empty string because the
 path is the same as the base, we should give ./ back, and what
 should the return value of this function be?
 ...
 So what does it mean to have an existing string in the output buffer
 when calling the function?  Is it supposed to be a path to a
 directory, or just a general uninterpreted string (e.g. a message)?

I prefer the KISS principle in this case: do not interpret existing string.
-- 
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: push.default documented in man git-push?

2012-10-11 Thread Matthieu Moy
Nguyen Thai Ngoc Duy pclo...@gmail.com writes:

 On Fri, Oct 05, 2012 at 01:03:28PM -0700, Junio C Hamano wrote:

 OK, the messages are supposed to advise how to turn them off, so we
 would want some code updates in that case.

 Something like this? It turns out none of the advice messages says
 anything about advice.*.

Personally, I'm fine with the current situation. Advanced users can read
the documentation, and for others, the messages are usually more helpful
than annoying.

 This patch makes many output more verbose/annoying,

For example, it makes the output of git status look like:

# On branch master
# Changes to be committed:
#   (use git reset HEAD file... to unstage)
#   Set advice.statusHints to false to turn off this message
#
#   modified:   foo.txt
#
# Changes not staged for commit:
#   (use git add file... to update what will be committed)
#   (use git checkout -- file... to discard changes in working directory)
#   Set advice.statusHints to false to turn off this message
#
#   modified:   foo.txt
#
# Untracked files:
#   (use git add file... to include in what will be committed)
#   Set advice.statusHints to false to turn off this message
#
#   bar.txt

I think it's going really too far in verbosity, the actual information
is hidden by the advices.

 (which is good, more motivation to turn advice off).

I disagree. Having advices turned on doesn't harm anyone. I don't
remember anyone complaining about the verbosity of Git's advices. I've
seen *many* more people complaining about the user-unfriendliness of
Git.

I'm fine with very verbose (and scary) messages when the user did
something wrong (for example, the advice.implicitIdentity is something
you should never see if you configured Git properly before commiting).
But the user should not feel blamed for using the default configuration
of advice messages. The tripple repetition in git status shown above
really sounds like hey, dumb user, why did you not set
advice.statusHints already, and is doubly scary for newbies, because
they are not told how to set the variable, nor what a config variable is
to Git.

I understand the motivation of making the advice.* section of man
git-config more easily discoverable, but then picking a reasonable
subset of the advice messages (e.g. places that are already verbose
anyway, and not places that total beginners would see on a daily basis
like git status) would be much better than targetting exhaustivity
IMHO.

 @@ -89,7 +90,9 @@ void detach_advice(const char *new_name)
   state without impacting any branches by performing another 
 checkout.\n\n
   If you want to create a new branch to retain commits you create, you 
 may\n
   do so (now or later) by using -b with the checkout command again. 
 Example:\n\n
 -   git checkout -b new_branch_name\n\n;
 +   git checkout -b new_branch_name\n
 + Set either advice.detachedHead to false to turn off this message\n\n
 ^^

Wrong cut-and paste from ... either XXX or YYY ...? (repeated several
times below).

-- 
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: push.default documented in man git-push?

2012-10-11 Thread Nguyen Thai Ngoc Duy
On Thu, Oct 11, 2012 at 9:18 PM, Matthieu Moy
matthieu@grenoble-inp.fr wrote:
 For example, it makes the output of git status look like:

 # On branch master
 # Changes to be committed:
 #   (use git reset HEAD file... to unstage)
 #   Set advice.statusHints to false to turn off this message
 #
 #   modified:   foo.txt
 #
 # Changes not staged for commit:
 #   (use git add file... to update what will be committed)
 #   (use git checkout -- file... to discard changes in working directory)
 #   Set advice.statusHints to false to turn off this message
 #
 #   modified:   foo.txt
 #
 # Untracked files:
 #   (use git add file... to include in what will be committed)
 #   Set advice.statusHints to false to turn off this message
 #
 #   bar.txt

And two more lines on my output:

 no changes added to commit (use git add and/or git commit -a)
 Set advice.statusHints to false to turn off this message

 I think it's going really too far in verbosity, the actual information
 is hidden by the advices.

We could make it only one extra line in this case by prepending hint:
 before the advice and say you could turn the hints off by setting
advice.statusHints at the end. Not applicable in general though.

 (which is good, more motivation to turn advice off).

 I disagree. Having advices turned on doesn't harm anyone. I don't
 remember anyone complaining about the verbosity of Git's advices. I've
 seen *many* more people complaining about the user-unfriendliness of
 Git.

git status is actually quite verbose, but the advice only plays a
part of it. So, not an actual complaint from me about the advice
alone.

 -   git checkout -b new_branch_name\n\n;
 +   git checkout -b new_branch_name\n
 + Set either advice.detachedHead to false to turn off this message\n\n
 ^^

 Wrong cut-and paste from ... either XXX or YYY ...? (repeated several
 times below).

CutPaste mistake.
-- 
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: rm and add, but not rename, of identical files

2012-10-11 Thread Drew Northup
On Wed, 2012-10-10 at 14:47 -0700, Junio C Hamano wrote:
 Drew Northup drew.nort...@maine.edu writes:
 
  # Untracked files:
  #   (use git add file... to include in what will be committed)
  #
  #   rc.d/rc2.d/S08iptables
  #   rc.d/rc3.d/S08iptables
  #   rc.d/rc4.d/S08iptables
  ...
  no changes added to commit (use git add and/or git commit -a)
 
  It detects the changes as renames however―which in this case isn't
  appropriate:
 
  [root@drew-northup ~]# etckeeper vcs status
  # On branch master
  # Changes to be committed:
  #   (use git reset HEAD file... to unstage)
  #
  #   renamed:rc.d/rc2.d/K92iptables - rc.d/rc2.d/S08iptables
  #   renamed:rc.d/rc3.d/K92iptables - rc.d/rc3.d/S08iptables
  #   renamed:rc.d/rc4.d/K92iptables - rc.d/rc4.d/S08iptables
  #...
 
 Given that all of these six files have the same contents, I actually
 am slightly impressed how well Git matched them up ;-).
 
 But more seriously, why do you have rc.d/rc2.d/S08iptables untracked
 in the working tree but in the index to be committed?

Missing steps in the mail body: etckeeper vcs add File  etckeeper vcs
rm File commands. I pared it back to the absolute minimum.

Is that what you're asking about?

-- 
-Drew Northup

As opposed to vegetable or mineral error?
-John Pescatore, SANS NewsBites Vol. 12 Num. 59

--
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


filter-branch IO optimization

2012-10-11 Thread Enrico Weigelt
Hi folks,

for certain projects, I need to regularily run filter-branch on quite
large repos (10k commits), and that needs to be run multiple times,
which takes several hours, so I'm looking for optimizations.

The main goal of this filtering is splitting out many modules from a
large upstream repo into their own downstream repos. This process
should be fully deterministic (IOW: running it twice at the same input,
should produce exactly same output, so commit IDs stay the same after
subsequent runs)

My current approach is most likely yet a bit too naive:

#1: forkoff new branch from current upstream
#2: run a tree-filter which:
* removes all files not belonging to the wanted module
* move the module directory under another subdir (./addons/)
* fix author/comitter name/email if empty (because otherwise fails)
* fix charater sets and indentions of source files
#3: loop through `git filter-branch --prune-empty` to get rid of empty
merge nodes (which otherwise remain really a lot), until branch
remains unchanged
#4: run plain rebase onto initial commit to linearize the history

All that is done is on per-module basis (for now only about 10,
but soon can become much more).

One thing I haven't tried yet is using the -d option to move the .git-rewrite
dir to an tmpfs (have to clarify some operating considerations first) ;-o

The next step I have in mind is using --subdirectory-filter, but open
questsions are:

* does it suffer from the same problems w/ empty username/email like 
--tree-filter ?
** if yes: what can I do about it (have an additional pass for fixing that 
before
   running the --tree-filter ?
* can I somehow teach the --subdirectory filter to place the result under some
  somedir instead of directly to root ?
* can I use --tree-filter in combination with --subdireectory-filter ? 
  which one is executed first ?


thanks
-- 
Mit freundlichen Grüßen / Kind regards 

Enrico Weigelt 
VNC - Virtual Network Consult GmbH 
Head Of Development 

Pariser Platz 4a, D-10117 Berlin
Tel.: +49 (30) 3464615-20
Fax: +49 (30) 3464615-59

enrico.weig...@vnc.biz; www.vnc.de 
--
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 2/2] grep: stop looking at random places for .gitattributes

2012-10-11 Thread Junio C Hamano
Johannes Sixt j.s...@viscovery.net writes:

 I saw EINVAL errors when 'git grep pattern rev' was run on Windows. The
 reason is that the code attempted to access rev:dir/.gitattributes in
 the worktree, which is an invalid path on Windows due to the colon. The
 lack of this warning indicates that the attempts to access these files are
 eliminated.

It means that whenever we ask for attributes for a tracked file that
is inside a directory whose name contains a colon, we would get the
same error on Windows, no?  Perhaps Windows may not let you create
such a directory in the first place, but you may still get a
repository of a cross platform project that contains such a path.

What I am wondering is if we should do something similar to 8e950da
(attr: failure to open a .gitattributes file is OK with ENOTDIR,
2012-09-13), at least on Windows, for EINVAL.

--
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 v4 00/12] Wildmatch v4

2012-10-11 Thread Junio C Hamano
Nguyen Thai Ngoc Duy pclo...@gmail.com writes:

 On Thu, Oct 11, 2012 at 11:33 AM, Junio C Hamano gits...@pobox.com wrote:
 Junio C Hamano gits...@pobox.com writes:

 Nguyễn Thái Ngọc Duy  pclo...@gmail.com writes:

 Really small updates. I did not want to resend it this soon but this
 may fix the compile errors for Junio.

 t3070 seems to break TAP,

 *** prove ***
 t3070-wildmatch.sh .. Failed 1/151 subtests

 Test Summary Report
 ---
 t3070-wildmatch.sh (Wstat: 0 Tests: 150 Failed: 0)
   Parse errors: Tests out of sequence.  Found (76) but expected (75)
 Tests out of sequence.  Found (77) but expected (76)
 Tests out of sequence.  Found (78) but expected (77)
 Tests out of sequence.  Found (79) but expected (78)
 Tests out of sequence.  Found (80) but expected (79)
 Displayed the first 5 of 77 TAP syntax errors.

 This probably is due to this part of the output:

 ok 72 - wildmatch 1 1 [ab] [\[:]ab]
 ok 73 - wildmatch 1 1 ?a?b \??\?b
 ok 74 - wildmatch 1 1 abc ^G^Hok 75 - wildmatch 0 0 foo
 ok 76 - wildmatch 1 0 foo/bar/baz/to **/t[o]
 ok 77 - wildmatch 1 1 a1B [[:alpha:]][[:digit:]][[:upper:]]


 It seems to prove fine here with perl 5.12.3, Test-Harness-3.230,
 bash-4.0_p38. What version do you use?

I seem to have Perl 5.10.1, Test::Harness 3.17, Dash 0.5.5.1.  But
as you can see above, what is _fed_ to the Perl-side is broken
(notice the concatenation at the end of ok 74), so I do not think
versions of Perl-side matters.

I suspect that this is the immediate culprit:

match 1 1 'abc' '\a\b\c'

The symptom looks like that somebody is interpreting \a as BEL, \b
as backspace, etc. when showing the ok ... line, no?


--
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: push.default documented in man git-push?

2012-10-11 Thread Junio C Hamano
Matthieu Moy matthieu@grenoble-inp.fr writes:

 Nguyen Thai Ngoc Duy pclo...@gmail.com writes:

 On Fri, Oct 05, 2012 at 01:03:28PM -0700, Junio C Hamano wrote:

 OK, the messages are supposed to advise how to turn them off, so we
 would want some code updates in that case.

 Something like this? It turns out none of the advice messages says
 anything about advice.*.

 Personally, I'm fine with the current situation. Advanced users can read
 the documentation, and for others, the messages are usually more helpful
 than annoying.

OK, you convinced me.

 I disagree. Having advices turned on doesn't harm anyone. I don't
 remember anyone complaining about the verbosity of Git's advices. I've
 seen *many* more people complaining about the user-unfriendliness of
 Git.

 I'm fine with very verbose (and scary) messages when the user did
 something wrong (for example, the advice.implicitIdentity is something
 you should never see if you configured Git properly before commiting).
 But the user should not feel blamed for using the default configuration
 of advice messages. The tripple repetition in git status shown above
 really sounds like hey, dumb user, why did you not set
 advice.statusHints already, and is doubly scary for newbies, because
 they are not told how to set the variable, nor what a config variable is
 to Git.

Let's let the list of advice.* messages in Documentation/config.txt
do their job.

Nguyen, thanks for taking a look.  I do agree the extra here is how
to rob helpful hints from yourself before you learn them seems to
do more harm than good.
--
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 1/3] quote: let caller reset buffer for quote_path_relative()

2012-10-11 Thread Junio C Hamano
Nguyen Thai Ngoc Duy pclo...@gmail.com writes:

 On Thu, Oct 11, 2012 at 4:13 AM, Junio C Hamano gits...@pobox.com wrote:
 This sounds a lot stronger than let to me.  All existing callers
 that assumed that buf to be emptied by the function now has to clear
 it.  quote: stop resetting output buffer of quote_path_relative()
 may better describe what this really does.

 How should this interact with the logic in the called function that
 used to say if we ended up returning an empty string because the
 path is the same as the base, we should give ./ back, and what
 should the return value of this function be?
 ...
 So what does it mean to have an existing string in the output buffer
 when calling the function?  Is it supposed to be a path to a
 directory, or just a general uninterpreted string (e.g. a message)?

 I prefer the KISS principle in this case: do not interpret existing string.

Sorry, I do not quite understand what you mean.

The original function is about turning one path into a path that is
relative to the other path (e.g. make the result usable for chdir()
when your cwd() is the other path to name that path), and because
you do not want to end up with an empty path, it adds ./ to the
result when the two paths are equal.

That is simple and stupid, in the sense that you can explain in
simple terms what it does even to a stupid person and make him
understand.

If a patch changes one aspect of the implementation of the function,
but keeps other parts intact without thinking the ramifications of
doing so through, and ends up giving the end result unnecessarily
complex semantics, the _patch_ might be simple and stupid, but the
end result is no longer simple.

That is why I asked what it means to append and asked you to write
it down for people who may need to decide if this function is an
appropriate thing to call for their new code in the future.

You didn't answer that question, so I have to ask again.  What is
the existing string this function appends its result to?

 - If it is a leading path (in other words, you are transplanting a
   hierarchy to somewhere else --- see and (re)read But if the
   caller did this instead part from the message you are responding
   to), because you do not want to end up with an empty path, it
   adds ./ to the result when the two paths are equal does not
   make sense at all.

 - If it is a message that describes the resulting relative path
   (the use case above that transplant example in the same
   message), it needs to add ./ to the result, but the logic to
   determine it now needs to take the length of what was in the
   buffer when the function was called into account.

 - Is there a third possibility?

Whatever your answer is, please make sure the next person who wants
to call this function from his code does not have to ask Why does
it append ./ when out-len is zero?  Shouldn't the condition be
when *rel is an empty string?

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


Re: How can I tell if anything was fetched?

2012-10-11 Thread Andreas Schwab
Phil Lawrence prlawre...@gmail.com writes:

 One approach might be to first generate a state-of-the-repo SHA1:
 # http://stackoverflow.com/a/7350019/834039
 # http://git-scm.com/book/ch9-2.html
 {
 git rev-list --objects --all
 git rev-list --objects -g --no-walk --all
 git rev-list --objects --no-walk \
 $(git fsck --unreachable |
   grep '^unreachable commit' |
   cut -d' ' -f3)
 } | sort | uniq | git hash-object -w --stdin

I think you'd only need to record the state of all refs (eg. the output
of `git for-each-ref') to reliably detect any changes.

Andreas.

-- 
Andreas Schwab, sch...@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
And now for something completely different.
--
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: rm and add, but not rename, of identical files

2012-10-11 Thread Junio C Hamano
Drew Northup drew.nort...@maine.edu writes:

 On Wed, 2012-10-10 at 14:47 -0700, Junio C Hamano wrote:
 Drew Northup drew.nort...@maine.edu writes:
 
  # Untracked files:
  #   (use git add file... to include in what will be committed)
  #
  #   rc.d/rc2.d/S08iptables
  #   rc.d/rc3.d/S08iptables
  #   rc.d/rc4.d/S08iptables
  ...
  no changes added to commit (use git add and/or git commit -a)
 
  It detects the changes as renames however―which in this case isn't
  appropriate:
 
  [root@drew-northup ~]# etckeeper vcs status
  # On branch master
  # Changes to be committed:
  #   (use git reset HEAD file... to unstage)
  #
  #   renamed:rc.d/rc2.d/K92iptables - rc.d/rc2.d/S08iptables
  #   renamed:rc.d/rc3.d/K92iptables - rc.d/rc3.d/S08iptables
  #   renamed:rc.d/rc4.d/K92iptables - rc.d/rc4.d/S08iptables
  #...
 
 Given that all of these six files have the same contents, I actually
 am slightly impressed how well Git matched them up ;-).
 
 But more seriously, why do you have rc.d/rc2.d/S08iptables untracked
 in the working tree but in the index to be committed?

 Missing steps in the mail body: etckeeper vcs add File  etckeeper vcs
 rm File commands. I pared it back to the absolute minimum.

 Is that what you're asking about?

Yes.  Without the add step, detecting the K92iptables that has
been moved to an untracked S08iptables as rename looked like a magic
(read: bug) to me, and that was why I asked.

Aren't K92iptables and S08iptables the same script with

  case $1 in start) ... start thing ...;; stop) ... stop thing ...;; esac

in it?

On Debian, these S/K files appear directly under /etc without
intermediate rc.d level, and they are symbolic links to real files
in /etc/init.d/, so extrapolating from that knowledge and with a bit
of imagination that some systems might keep copies of these files
instead of linking to the same thing, I would actually find it
desireable to call the move from K92iptables to S08iptables a
rename, rather than reporting a removal and a addition of unrelated
files.
--
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 after cherry-pick -n conflict clobbers .git/COMMIT_EDITMSG

2012-10-11 Thread Junio C Hamano
Yann Dirson dir...@bertin.fr writes:

 (only tested with 1.7.10.x for now)

 ~/softs/linux$ echo foo  .git/COMMIT_EDITMSG

Why are you mucking with such an internal implementation detail in
the first place?

 ~/softs/linux$ git cherry-pick -n b55f3d92cd
 error: could not apply b55f3d9... Linux 2.6.32.26
 hint: after resolving the conflicts, mark the corrected paths
 hint: with 'git add paths' or 'git rm paths'
 ~/softs/linux$ cat .git/COMMIT_EDITMSG
 foo

 So far, so good.  But then git commit brings me the message from the
 cherry-picked commit plus the list of conflicted files, and I can verify that
 it is now the contents of .git/COMMIT_EDITMSG.

You verified that what is now in .git/COMMIT_EDITMSG?  The commit
log message for you to edit to record the result of the cherry-pick?

If that is the case, what is the problem?

If anything you had in .git/COMMIT_EDITMSG before you started
'cherry-pick -n', edit further to adjust, and then 'commit'
sequence were to appear in the editor to edit the commit log,
it would be a bug, I would think.
--
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 v4 00/12] Wildmatch v4

2012-10-11 Thread Junio C Hamano
Junio C Hamano gits...@pobox.com writes:

 This probably is due to this part of the output:

 ok 72 - wildmatch 1 1 [ab] [\[:]ab]
 ok 73 - wildmatch 1 1 ?a?b \??\?b
 ok 74 - wildmatch 1 1 abc ^G^Hok 75 - wildmatch 0 0 foo
 ok 76 - wildmatch 1 0 foo/bar/baz/to **/t[o]
 ok 77 - wildmatch 1 1 a1B [[:alpha:]][[:digit:]][[:upper:]]
 ...

 I suspect that this is the immediate culprit:

 match 1 1 'abc' '\a\b\c'

 The symptom looks like that somebody is interpreting \a as BEL, \b
 as backspace, etc. when showing the ok ... line, no?

Ahh, it must be this bits from t/test-lib.sh

 t/test-lib.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git i/t/test-lib.sh w/t/test-lib.sh
index 514282c..489bc80 100644
--- i/t/test-lib.sh
+++ w/t/test-lib.sh
@@ -230,7 +230,7 @@ else
say_color() {
test -z $1  test -n $quiet  return
shift
-   echo $*
+   printf %s\n $*
}
 fi
 
--
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 0/8] Create single PDF for all HTML files

2012-10-11 Thread Thomas Ackermann
 
Hi,

here is my reworked patch series for creating a single PDF for all
git documentation files.

Thanks to Junio Hamano, Philip Oakley and Jeff King for your comments!

In general, the following problems had to be fixed in doc files in order to 
create
HTML by using asciidoc and afterwards create a nice looking PDF using 
wkhtmltopdf:

- Wrong sectioning syntax (e.g. === instead of ---)
- Left-over shell scripting commands (in some release notes files)
- Over-long lines which caused very wide right margins in the resulting PDF
- Wrong formatting for email quotes, quoted script code, tables

Also some of the headlines in the documents where changed or even created
initially in order to give a more consistent structure in the resulting PDF.

If you want to have a quick look on the resulting PDF just clone
https://github.com/tacker66/git-docpdf.git. This repo contains
a current version of user.manual.pdf and git-doc.pdf


---
Thomas
--
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 1/8] Split over-long synopsis in git-fetch-pack.txt into several lines

2012-10-11 Thread Thomas Ackermann
From 27b3105a374158fb8cb008c808a1ef94487a48f7 Mon Sep 17 00:00:00 2001
From: Thomas Ackermann th.ac...@arcor.de
Date: Thu, 4 Oct 2012 19:11:43 +0200
Subject: [PATCH] Split over-long synopsis in git-fetch-pack.txt into several
 lines

Signed-off-by: Thomas Ackermann th.ac...@arcor.de
---
 Documentation/git-fetch-pack.txt | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/Documentation/git-fetch-pack.txt b/Documentation/git-fetch-pack.txt
index 474fa30..12cd8a2 100644
--- a/Documentation/git-fetch-pack.txt
+++ b/Documentation/git-fetch-pack.txt
@@ -9,7 +9,10 @@ git-fetch-pack - Receive missing objects from another 
repository
 SYNOPSIS
 
 [verse]
-'git fetch-pack' [--all] [--quiet|-q] [--keep|-k] [--thin] [--include-tag] 
[--upload-pack=git-upload-pack] [--depth=n] [--no-progress] [-v] 
[host:]directory [refs...]
+'git fetch-pack' [--all] [--quiet|-q] [--keep|-k] [--thin] [--include-tag] 
+   [--upload-pack=git-upload-pack] 
+   [--depth=n] [--no-progress] 
+   [-v] [host:]directory [refs...]
 
 DESCRIPTION
 ---
-- 
1.7.11.msysgit.1


---
Thomas
--
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 2/8] Shorten two over-long lines in git-bisect-lk2009.txt by removing some white-space

2012-10-11 Thread Thomas Ackermann
From e7c97695b676e1ebe66491b3ed256051b9a3b4f1 Mon Sep 17 00:00:00 2001
From: Thomas Ackermann th.ac...@arcor.de
Date: Thu, 4 Oct 2012 19:11:43 +0200
Subject: [PATCH] Shorten two over-long lines in git-bisect-lk2009.txt by
 removing some white-space

Signed-off-by: Thomas Ackermann th.ac...@arcor.de
---
 Documentation/git-bisect-lk2009.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/git-bisect-lk2009.txt 
b/Documentation/git-bisect-lk2009.txt
index 8a2ba37..80745d7 100644
--- a/Documentation/git-bisect-lk2009.txt
+++ b/Documentation/git-bisect-lk2009.txt
@@ -257,7 +257,7 @@ Date:   Sat May 3 11:59:44 2008 -0700
 
 Linux 2.6.26-rc1
 
-:100644 100644 5cf8258195331a4dbdddff08b8d68642638eea57 
4492984efc09ab72ff6219a7bc21fb6a957c4cd5 M  Makefile
+:100644 100644 5cf8258195331a4dbdddff08b8d68642638eea57 
4492984efc09ab72ff6219a7bc21fb6a957c4cd5 M  Makefile
 -
 
 At this point we can see what the commit does, check it out (if it's
@@ -331,7 +331,7 @@ Date:   Sat May 3 11:59:44 2008 -0700
 
 Linux 2.6.26-rc1
 
-:100644 100644 5cf8258195331a4dbdddff08b8d68642638eea57 
4492984efc09ab72ff6219a7bc21fb6a957c4cd5 M  Makefile
+:100644 100644 5cf8258195331a4dbdddff08b8d68642638eea57 
4492984efc09ab72ff6219a7bc21fb6a957c4cd5 M  Makefile
 bisect run success
 -
 
-- 
1.7.11.msysgit.1


---
Thomas
--
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 3/8] Change headline of technical/send-pack-pipeline.txt to not confuse its content with content from git-send-pack.txt

2012-10-11 Thread Thomas Ackermann
From af1f0dc8e02ef178fc89f5fa3893a997a4a9b2eb Mon Sep 17 00:00:00 2001
From: Thomas Ackermann th.ac...@arcor.de
Date: Tue, 9 Oct 2012 20:19:34 +0200
Subject: [PATCH] Change headline of technical/send-pack-pipeline.txt to not
 confuse its content with content from git-send-pack.txt

Signed-off-by: Thomas Ackermann th.ac...@arcor.de
---
 Documentation/technical/send-pack-pipeline.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/technical/send-pack-pipeline.txt 
b/Documentation/technical/send-pack-pipeline.txt
index 681efe4..9b5a0bc 100644
--- a/Documentation/technical/send-pack-pipeline.txt
+++ b/Documentation/technical/send-pack-pipeline.txt
@@ -1,5 +1,5 @@
-git-send-pack
-=
+Git-send-pack internals
+===
 
 Overall operation
 -
-- 
1.7.11.msysgit.1


---
Thomas
--
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 4/8] Prerequisites for creating nice html for all files in Documentation/technical

2012-10-11 Thread Thomas Ackermann
From 23b5272cbb27dca7e292f33c79cf3d8e21298b78 Mon Sep 17 00:00:00 2001
From: Thomas Ackermann th.ac...@arcor.de
Date: Sat, 29 Sep 2012 10:00:00 +0200
Subject: [PATCH] Prerequisites for creating nice html for all files in
 Documentation/technical

- fix wrong asciidoc sectioning markup in index-format.txt, pack-format.txt and 
pack-protocol.txt
- split an over-long line in pack-protocol.txt into several lines
- add a markup box for definition part in shallow.txt
- fix table markup in trivial-merge.txt

Signed-off-by: Thomas Ackermann th.ac...@arcor.de
---
 Documentation/technical/index-format.txt  |  2 +-
 Documentation/technical/pack-format.txt   |  8 +++
 Documentation/technical/pack-protocol.txt |  7 +++---
 Documentation/technical/shallow.txt   |  8 ++-
 Documentation/technical/trivial-merge.txt | 36 +++
 5 files changed, 34 insertions(+), 27 deletions(-)

diff --git a/Documentation/technical/index-format.txt 
b/Documentation/technical/index-format.txt
index 9d25b30..57d6f91 100644
--- a/Documentation/technical/index-format.txt
+++ b/Documentation/technical/index-format.txt
@@ -1,7 +1,7 @@
 GIT index format
 
 
-= The git index file has the following format
+== The git index file has the following format
 
   All binary numbers are in network byte order. Version 2 is described
   here unless stated otherwise.
diff --git a/Documentation/technical/pack-format.txt 
b/Documentation/technical/pack-format.txt
index 1803e64..a7871fb 100644
--- a/Documentation/technical/pack-format.txt
+++ b/Documentation/technical/pack-format.txt
@@ -1,7 +1,7 @@
 GIT pack format
 ===
 
-= pack-*.pack files have the following format:
+== pack-*.pack files have the following format:
 
- A header appears at the beginning and consists of the following:
 
@@ -34,7 +34,7 @@ GIT pack format
 
   - The trailer records 20-byte SHA1 checksum of all of the above.
 
-= Original (version 1) pack-*.idx files have the following format:
+== Original (version 1) pack-*.idx files have the following format:
 
   - The header consists of 256 4-byte network byte order
 integers.  N-th entry of this table records the number of
@@ -123,8 +123,8 @@ Pack file entry: +
 
 
 
-= Version 2 pack-*.idx files support packs larger than 4 GiB, and
-  have some other reorganizations.  They have the format:
+== Version 2 pack-*.idx files support packs larger than 4 GiB, and
+   have some other reorganizations.  They have the format:
 
   - A 4-byte magic number '\377tOc' which is an unreasonable
 fanout[0] value.
diff --git a/Documentation/technical/pack-protocol.txt 
b/Documentation/technical/pack-protocol.txt
index d51e20f..25e1fbe 100644
--- a/Documentation/technical/pack-protocol.txt
+++ b/Documentation/technical/pack-protocol.txt
@@ -117,7 +117,7 @@ A few things to remember here:
 - The repository path is always quoted with single quotes.
 
 Fetching Data From a Server
-===
+---
 
 When one Git repository wants to get data that a second repository
 has, the first can 'fetch' from the second.  This operation determines
@@ -134,7 +134,8 @@ with the object name that each reference currently points 
to.
 
$ echo -e -n 0039git-upload-pack /schacon/gitbook.git\0host=example.com\0 
|
   nc -v example.com 9418
-   00887217a7c7e582c46cec22a130adf4b9d7d950fba0 HEAD\0multi_ack thin-pack 
side-band side-band-64k ofs-delta shallow no-progress include-tag
+   00887217a7c7e582c46cec22a130adf4b9d7d950fba0 HEAD\0multi_ack thin-pack 
+side-band side-band-64k ofs-delta shallow no-progress 
include-tag
00441d3fcd5ced445d1abc402225c0b8a1299641f497 refs/heads/integration
003f7217a7c7e582c46cec22a130adf4b9d7d950fba0 refs/heads/master
003cb88d2441cac0977faf98efc80305012112238d9d refs/tags/v0.9
@@ -421,7 +422,7 @@ entire packfile without multiplexing.
 
 
 Pushing Data To a Server
-
+
 
 Pushing data to a server will invoke the 'receive-pack' process on the
 server, which will allow the client to tell it which references it should
diff --git a/Documentation/technical/shallow.txt 
b/Documentation/technical/shallow.txt
index 559263a..0502a54 100644
--- a/Documentation/technical/shallow.txt
+++ b/Documentation/technical/shallow.txt
@@ -1,6 +1,12 @@
-Def.: Shallow commits do have parents, but not in the shallow
+Shallow commits
+===
+
+.Definition
+*
+Shallow commits do have parents, but not in the shallow
 repo, and therefore grafts are introduced pretending that
 these commits have no parents.
+*
 
 The basic idea is to write the SHA1s of shallow commits into
 $GIT_DIR/shallow, and handle its contents like the contents
diff --git a/Documentation/technical/trivial-merge.txt 
b/Documentation/technical/trivial-merge.txt
index 24c8410..c79d4a7 100644
--- 

[Patch v2 6/8] Prerequisites for creating nice html for all files in Documentation/RelNotes

2012-10-11 Thread Thomas Ackermann
From cd7a26f5e7ba8cc42bf81e1b78f800460510b71f Mon Sep 17 00:00:00 2001
From: Thomas Ackermann th.ac...@arcor.de
Date: Sat, 29 Sep 2012 11:00:00 +0200
Subject: [PATCH] Prerequisites for creating nice html for all files in
 Documentation/RelNotes

- remove left-over shell-script fragments from some files

Signed-off-by: Thomas Ackermann th.ac...@arcor.de
---
 Documentation/RelNotes/1.5.2.1.txt | 6 --
 Documentation/RelNotes/1.6.0.2.txt | 6 --
 Documentation/RelNotes/1.6.1.3.txt | 4 
 Documentation/RelNotes/1.6.1.4.txt | 3 ---
 Documentation/RelNotes/1.6.1.txt   | 6 --
 5 files changed, 25 deletions(-)

diff --git a/Documentation/RelNotes/1.5.2.1.txt 
b/Documentation/RelNotes/1.5.2.1.txt
index ebf20e2..d41984d 100644
--- a/Documentation/RelNotes/1.5.2.1.txt
+++ b/Documentation/RelNotes/1.5.2.1.txt
@@ -45,9 +45,3 @@ Fixes since v1.5.2
   - git-fastimport --import-marks was broken; fixed.
 
   - A lot of documentation updates, clarifications and fixes.
-
---
-exec /var/tmp/1
-O=v1.5.2-65-g996e2d6
-echo O=`git describe refs/heads/maint`
-git shortlog --no-merges $O..refs/heads/maint
diff --git a/Documentation/RelNotes/1.6.0.2.txt 
b/Documentation/RelNotes/1.6.0.2.txt
index e1e24b3..7d8fb85 100644
--- a/Documentation/RelNotes/1.6.0.2.txt
+++ b/Documentation/RelNotes/1.6.0.2.txt
@@ -79,9 +79,3 @@ Fixes since v1.6.0.1
   packfile.
 
 Also contains many documentation updates.
-
---
-exec /var/tmp/1
-O=v1.6.0.1-78-g3632cfc
-echo O=$(git describe maint)
-git shortlog --no-merges $O..maint
diff --git a/Documentation/RelNotes/1.6.1.3.txt 
b/Documentation/RelNotes/1.6.1.3.txt
index 6f0bde1..cd08d81 100644
--- a/Documentation/RelNotes/1.6.1.3.txt
+++ b/Documentation/RelNotes/1.6.1.3.txt
@@ -26,7 +26,3 @@ Fixes since v1.6.1.2
 * RPM binary package installed the html manpages in a wrong place.
 
 Also includes minor documentation fixes and updates.
-
-
---
-git shortlog --no-merges v1.6.1.2-33-gc789350..
diff --git a/Documentation/RelNotes/1.6.1.4.txt 
b/Documentation/RelNotes/1.6.1.4.txt
index 0ce6316..ccbad79 100644
--- a/Documentation/RelNotes/1.6.1.4.txt
+++ b/Documentation/RelNotes/1.6.1.4.txt
@@ -39,6 +39,3 @@ Fixes since v1.6.1.3
   This fix was first merged to 1.6.2.3.
 
 Also includes minor documentation fixes and updates.
-
---
-git shortlog --no-merges v1.6.1.3..
diff --git a/Documentation/RelNotes/1.6.1.txt b/Documentation/RelNotes/1.6.1.txt
index adb7cca..7b152a6 100644
--- a/Documentation/RelNotes/1.6.1.txt
+++ b/Documentation/RelNotes/1.6.1.txt
@@ -278,9 +278,3 @@ release, unless otherwise noted.
 
 * gitweb did not mark non-ASCII characters imported from external HTML 
fragments
   correctly.
-
---
-exec /var/tmp/1
-O=v1.6.1-rc3-74-gf66bc5f
-echo O=$(git describe master)
-git shortlog --no-merges $O..master ^maint
-- 
1.7.11.msysgit.1


---
Thomas
--
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 7/8] Create pdf from all html files

2012-10-11 Thread Thomas Ackermann
From 31f86526e0a0bd00be57db3275c860913f668fb8 Mon Sep 17 00:00:00 2001
From: Thomas Ackermann th.ac...@arcor.de
Date: Mon, 1 Oct 2012 20:06:48 +0200
Subject: [PATCH] Create pdf from all html files

- use wkhtmltopdf (patched QT version) to combine all html files into a 
single pdf file git-doc.pdf
- insert page breaks to separate major sections

Signed-off-by: Thomas Ackermann th.ac...@arcor.de
---
 Documentation/.gitignore  |  1 +
 Documentation/footerend.txt   |  4 
 Documentation/footerstart.txt |  7 ++
 Documentation/makedocpdf.sh   | 53 +++
 Documentation/pagebreak.txt   |  1 +
 5 files changed, 66 insertions(+)
 create mode 100644 Documentation/footerend.txt
 create mode 100644 Documentation/footerstart.txt
 create mode 100755 Documentation/makedocpdf.sh
 create mode 100644 Documentation/pagebreak.txt

diff --git a/Documentation/.gitignore b/Documentation/.gitignore
index d62aebd..fba4730 100644
--- a/Documentation/.gitignore
+++ b/Documentation/.gitignore
@@ -10,3 +10,4 @@ howto-index.txt
 doc.dep
 cmds-*.txt
 manpage-base-url.xsl
+docfiles.txt
diff --git a/Documentation/footerend.txt b/Documentation/footerend.txt
new file mode 100644
index 000..ed16923
--- /dev/null
+++ b/Documentation/footerend.txt
@@ -0,0 +1,4 @@
+/td
+  /tr
+/table
+/body/html
diff --git a/Documentation/footerstart.txt b/Documentation/footerstart.txt
new file mode 100644
index 000..a2746ef
--- /dev/null
+++ b/Documentation/footerstart.txt
@@ -0,0 +1,7 @@
+html
+head/head
+body style=border:0; margin: 0; onload=subst()
+table style=border-top: 1px solid black; width: 100%
+  tr
+td class=section/td
+td style=text-align:center
diff --git a/Documentation/makedocpdf.sh b/Documentation/makedocpdf.sh
new file mode 100755
index 000..5f1a2c1
--- /dev/null
+++ b/Documentation/makedocpdf.sh
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+rm -f git-doc.pdf
+
+cat pagebreak.txt  pagebreak.html
+
+cat /dev/null  docfiles.txt
+
+ls gittutorial.htmldocfiles.txt
+ls gittutorial-2.html  docfiles.txt
+ls everyday.html   docfiles.txt
+ls gitworkflows.html   docfiles.txt
+
+ls pagebreak.html  docfiles.txt
+ls git.htmldocfiles.txt
+ls git-a*.html docfiles.txt
+ls git-bisect.html docfiles.txt
+ls git-b[j-z]*.htmldocfiles.txt
+ls git-[c-s]*.html docfiles.txt
+ls git-ta*.htmldocfiles.txt
+ls gitk.html   docfiles.txt
+ls git-[u-z]*.html docfiles.txt
+
+ls pagebreak.html  docfiles.txt
+ls gita*.html  docfiles.txt
+ls git-bisect-lk2009.html  docfiles.txt
+ls git[cdghimnr]*.html docfiles.txt
+ls git-tools.html  docfiles.txt
+ls gitweb*.htmldocfiles.txt
+
+ls pagebreak.html  docfiles.txt
+ls howto-index.htmldocfiles.txt
+ls howto/*.htmldocfiles.txt
+
+ls pagebreak.html  docfiles.txt
+ls technical/[b-z]*.html   docfiles.txt
+
+ls pagebreak.html  docfiles.txt
+ls technical/api-index.htmldocfiles.txt
+ls technical/api-[a-h]*.html   docfiles.txt
+ls technical/api-in-*.html docfiles.txt
+ls technical/api-[j-z]*.html   docfiles.txt
+
+ls pagebreak.html  docfiles.txt
+ls RelNotes/*.html docfiles.txt
+
+cat /dev/null  footer.html
+
+cat footerstart.txtfooter.html
+cat ../GIT-VERSION-FILEfooter.html
+cat footerend.txt  footer.html
+
+cat docfiles.txt | xargs cat | wkhtmltopdf --book --footer-html footer.html 
--disable-external-links - git-doc.pdf
diff --git a/Documentation/pagebreak.txt b/Documentation/pagebreak.txt
new file mode 100644
index 000..fdaffd1
--- /dev/null
+++ b/Documentation/pagebreak.txt
@@ -0,0 +1 @@
+/p style=page-break-after: always
-- 
1.7.11.msysgit.1


---
Thomas
--
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 8/8] Wire everything into Makefile and Documentation/Makefile

2012-10-11 Thread Thomas Ackermann
From ac7de86bd58c5849c12e2b05e7b7f68704d9093e Mon Sep 17 00:00:00 2001
From: Thomas Ackermann th.ac...@arcor.de
Date: Wed, 10 Oct 2012 19:30:55 +0200
Subject: [PATCH] Wire everything into Makefile and Documentation/Makefile

- target html creates html for all files in Documentation/howto and 
Documentation/technical
- new target relnoteshtml creates html for all release notes
- new target fullpdf creates git-doc.pdf and uses targets html, 
relnoteshtml and pdf
- html does not use relnoteshtml

Signed-off-by: Thomas Ackermann th.ac...@arcor.de
---
 Documentation/Makefile | 43 +--
 Makefile   |  9 +
 2 files changed, 50 insertions(+), 2 deletions(-)

diff --git a/Documentation/Makefile b/Documentation/Makefile
index 267dfe1..6710325 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -15,6 +15,9 @@ MAN_HTML=$(patsubst %.txt,%.html,$(MAN_TXT))
 
 DOC_HTML=$(MAN_HTML)
 
+RELNOTES_TXT = $(wildcard RelNotes/*.txt)
+RELNOTES_HTML= $(patsubst %.txt,%.html,$(RELNOTES_TXT))
+ 
 ARTICLES = howto-index
 ARTICLES += everyday
 ARTICLES += git-tools
@@ -24,8 +27,30 @@ SP_ARTICLES = user-manual
 SP_ARTICLES += howto/revert-branch-rebase
 SP_ARTICLES += howto/using-merge-subtree
 SP_ARTICLES += howto/using-signed-tag-in-pull-request
+SP_ARTICLES += howto/use-git-daemon
+SP_ARTICLES += howto/update-hook-example
+SP_ARTICLES += howto/setup-git-server-over-http
+SP_ARTICLES += howto/separating-topic-branches
+SP_ARTICLES += howto/revert-a-faulty-merge
+SP_ARTICLES += howto/recover-corrupted-blob-object
+SP_ARTICLES += howto/rebuild-from-update-hook
+SP_ARTICLES += howto/rebuild-from-update-hook
+SP_ARTICLES += howto/rebase-from-internal-branch
+SP_ARTICLES += howto/maintain-git
 API_DOCS = $(patsubst %.txt,%,$(filter-out technical/api-index-skel.txt 
technical/api-index.txt, $(wildcard technical/api-*.txt)))
 SP_ARTICLES += $(API_DOCS)
+
+TECH_DOCS += technical/index-format
+TECH_DOCS += technical/pack-format
+TECH_DOCS += technical/pack-heuristics
+TECH_DOCS += technical/pack-protocol
+TECH_DOCS += technical/protocol-capabilities
+TECH_DOCS += technical/protocol-common
+TECH_DOCS += technical/racy-git
+TECH_DOCS += technical/send-pack-pipeline
+TECH_DOCS += technical/shallow
+TECH_DOCS += technical/trivial-merge
+SP_ARTICLES += $(TECH_DOCS)
 SP_ARTICLES += technical/api-index
 
 DOC_HTML += $(patsubst %,%.html,$(ARTICLES) $(SP_ARTICLES))
@@ -156,6 +181,8 @@ all: html man
 
 html: $(DOC_HTML)
 
+relnoteshtml: $(RELNOTES_HTML)
+
 $(DOC_HTML) $(DOC_MAN1) $(DOC_MAN5) $(DOC_MAN7): asciidoc.conf
 
 man: man1 man5 man7
@@ -167,6 +194,9 @@ info: git.info gitman.info
 
 pdf: user-manual.pdf
 
+fullpdf: pdf relnoteshtml html
+   ./makedocpdf.sh
+
 install: install-man
 
 install-man: man
@@ -191,6 +221,10 @@ install-pdf: pdf
$(INSTALL) -d -m 755 $(DESTDIR)$(pdfdir)
$(INSTALL) -m 644 user-manual.pdf $(DESTDIR)$(pdfdir)
 
+install-fullpdf: fullpdf install-pdf
+   $(INSTALL) -d -m 755 $(DESTDIR)$(pdfdir)
+   $(INSTALL) -m 644 git-doc.pdf $(DESTDIR)$(pdfdir)
+
 install-html: html
'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(DESTDIR)$(htmldir)
 
@@ -230,8 +264,10 @@ clean:
$(RM) *.xml *.xml+ *.html *.html+ *.1 *.5 *.7
$(RM) *.texi *.texi+ *.texi++ git.info gitman.info
$(RM) *.pdf
+   $(RM) docfiles.txt
+   $(RM) RelNotes/*.html
$(RM) howto-index.txt howto/*.html doc.dep
-   $(RM) technical/api-*.html technical/api-index.txt
+   $(RM) technical/*.html technical/api-index.txt
$(RM) $(cmds_txt) *.made
$(RM) manpage-base-url.xsl
 
@@ -241,6 +277,9 @@ $(MAN_HTML): %.html : %.txt
$(ASCIIDOC_EXTRA) -agit_version=$(GIT_VERSION) -o $@+ $  \
mv $@+ $@
 
+$(RELNOTES_HTML): %.html : %.txt
+   $(QUIET_ASCIIDOC)$(ASCIIDOC) $(ASCIIDOC_EXTRA) -b xhtml11 $*.txt
+
 manpage-base-url.xsl: manpage-base-url.xsl.in
sed s|@@MAN_BASE_URL@@|$(MAN_BASE_URL)| $  $@
 
@@ -264,7 +303,7 @@ technical/api-index.txt: technical/api-index-skel.txt \
$(QUIET_GEN)cd technical  '$(SHELL_PATH_SQ)' ./api-index.sh
 
 technical/%.html: ASCIIDOC_EXTRA += -a git-relative-html-prefix=../
-$(patsubst %,%.html,$(API_DOCS) technical/api-index): %.html : %.txt
+$(patsubst %,%.html,$(API_DOCS) technical/api-index $(TECH_DOCS)): %.html : 
%.txt
$(QUIET_ASCIIDOC)$(ASCIIDOC) -b xhtml11 -f asciidoc.conf \
$(ASCIIDOC_EXTRA) -agit_version=$(GIT_VERSION) $*.txt
 
diff --git a/Makefile b/Makefile
index 8413606..0392782 100644
--- a/Makefile
+++ b/Makefile
@@ -2479,12 +2479,18 @@ man:
 html:
$(MAKE) -C Documentation html
 
+relnoteshtml:
+   $(MAKE) -C Documentation relnoteshtml
+
 info:
$(MAKE) -C Documentation info
 
 pdf:
$(MAKE) -C Documentation pdf
 
+fullpdf:
+   $(MAKE) -C Documentation fullpdf
+
 XGETTEXT_FLAGS = \
--force-po \
--add-comments \
@@ -2796,6 +2802,9 @@ install-info:
 install-pdf:

RE: A basic question

2012-10-11 Thread Jim Vahl
Drew, 

Thanks for responding to my email!

Yes, I did read most of the Book, although I admit that I skimmed over some
of the more technical parts.  There is still a key part of how git is used
in a commercial environment which I don't understand.

When we release a new version of our product, it is comprised of over a
hundred files.  Some of these files have not changed for years, and some
have been revised/fixed/updated quite recently.  But what is key is that all
of these components have passed a review and testing process.  A very
important piece of information is what revision of each file made it into
the release.

I know that git takes snapshots of the repository as changes are made and
that it is possible to reconstruct the file set at any point in time.  But
unless rules or conventions are established, at any time the repository can
contain files which are in the process of being modified and thus have not
passed the testing process.  For the purpose of planning a release, we're
interested only in the most recently tested and approved files.

For the sake of argument, I'll assume that a committing a change implies
that the file has passed the testing process.  So my questions are:

1) Does git have a built-in way to get a list of all of the most recently
committed files only at a given point in time, thus automatically recording
the revisions of all of the component files of a release?   This implies
that for files which are being modified or which have been staged but not
committed, that git would go back to find the predecessor file which had
been committed.

 2) Does git have a way of creating and exporting a list of the most
recently committed files only?

3) If the answer to the above questions is No, then what is the normal way
for a programming shop which is using git to extract/assemble the list of
approved files for building a release? 

Thank you.

Jim Vahl

-Original Message-
From: Drew Northup [mailto:drew.nort...@maine.edu] 
Sent: Wednesday, October 10, 2012 12:37 PM
To: Jim Vahl
Cc: git@vger.kernel.org; 'Skot Davis'
Subject: Re: A basic question

On Wed, 2012-10-10 at 11:03 -0700, Jim Vahl wrote:
 All,
 
 Our company is researching version control software, something which 
 we have not used previously.  I have a very basic question about git 
 which I have not been able to answer from reading.  As I understand 
 it, a git repository can be a mixture of files which are under
development, staged or committed.
 If we make a new build of our product we will obviously only want to 
 include the committed (tested) files.
 
 The question is this: what is the usual procedure to retrieve a set of 
 committed  files only from the repository to place into a distribution 
 or ready to build folder.  The same question goes for tagging a 
 release: how does the user get the tag to reference the committed 
 files only and not the most recent files which may be under development or
undergoing testing.
 
 Thanks,
 
 Jim Vahl

Jim,
Have you looked at http://git-scm.com/book yet? It sounds to me like you
have some misconceptions about how Git works. (If so, did it leave you more
or less confused?)

--
-Drew Northup

As opposed to vegetable or mineral error?
-John Pescatore, SANS NewsBites Vol. 12 Num. 59


--
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 1.8.0.rc0.18.gf84667d trouble with git commit -p file

2012-10-11 Thread Junio C Hamano
Conrad Irwin conrad.ir...@gmail.com writes:

  -i::
  --include::
 - Before making a commit out of staged contents so far,
 - stage the contents of paths given on the command line
 - as well.  This is usually not what you want unless you
 - are concluding a conflicted merge.
 + In addition to the paths specified on the command line,
 + include the current contents of the index in the commit.

commit is about committing what is in the index.  include has
always meant in addition, include the contents of listed paths
in the resulting commit.

The updated text looks totally the other way around.

  -o::
  --only::
 - Make a commit only from the paths specified on the
 - command line, disregarding any contents that have been
 - staged so far. This is the default mode of operation of
 - 'git commit' if any paths are given on the command line,
 - in which case this option can be omitted.
 - If this option is specified together with '--amend', then
 - no paths need to be specified, which can be used to amend
 - the last commit without committing changes that have
 - already been staged.
 + Only commit changes to the paths specified on the command line,
 + do not include the current contents of the index. This is
 + the default mode of operation when paths are specified.
 + If this option is specified with --amend it can be used
 + to reword the last commit without changing its contents.
 + This mode cannot be used with --patch or --interactive.

The new text on this one does look cleaner and easier to read, at
least to me, but do not include the current contents sounds as if
you are recording a tree that only has Makefile and losing all the
other files when you say git commit Makefile.

Disregard what has been added to the index since HEAD, and only
commit changes to the given paths.

might be an improvement, but I dunno.
--
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: How can I tell if anything was fetched?

2012-10-11 Thread Enrico Weigelt

 I think you'd only need to record the state of all refs (eg. the
 output
 of `git for-each-ref') to reliably detect any changes.

I would just record the output of `git ls-remote . | sort -u` somewhere
and compare it next time (maybe you even wanna grep for the desired
ref namespaces).


cu
-- 
Mit freundlichen Grüßen / Kind regards 

Enrico Weigelt 
VNC - Virtual Network Consult GmbH 
Head Of Development 

Pariser Platz 4a, D-10117 Berlin
Tel.: +49 (30) 3464615-20
Fax: +49 (30) 3464615-59

enrico.weig...@vnc.biz; www.vnc.de 
--
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: filter-branch IO optimization

2012-10-11 Thread Johannes Sixt
Am 11.10.2012 17:39, schrieb Enrico Weigelt:
 The main goal of this filtering is splitting out many modules from a
 large upstream repo into their own downstream repos.
...
 The next step I have in mind is using --subdirectory-filter, but open
 questsions are:
 
 * does it suffer from the same problems w/ empty username/email like 
 --tree-filter ?

I think so.

 ** if yes: what can I do about it (have an additional pass for fixing that 
 before
running the --tree-filter ?

Use --env-filter.

 * can I somehow teach the --subdirectory filter to place the result under some
   somedir instead of directly to root ?

No, but see the last example in the man page.

 * can I use --tree-filter in combination with --subdireectory-filter ? 
   which one is executed first ?

Yes. --subdirectory-filter applies first.

-- 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: A basic question

2012-10-11 Thread Dov Grobgeld
The way you typically work with git (and with most other version
control systems) is that you have a fast changing trunk (in git often
called the master), where development is done. Once you want to
release you create a release branch off the trunk, and in that branch
you do regression testing and stability testing, and once you are
convinced that stability has been achieved, you make your release.

In parallel, and without in any way influencing your release branch,
your programmers happily commit to the trunk.

See e.g. the following excellent description of some workflow models:

http://nvie.com/posts/a-successful-git-branching-model/

Regards,
Dov

 On Thu, Oct 11, 2012 at 7:38 PM, Jim Vahl j...@wmdb.com wrote:

 Drew,

 Thanks for responding to my email!

 Yes, I did read most of the Book, although I admit that I skimmed over some
 of the more technical parts.  There is still a key part of how git is used
 in a commercial environment which I don't understand.

 When we release a new version of our product, it is comprised of over a
 hundred files.  Some of these files have not changed for years, and some
 have been revised/fixed/updated quite recently.  But what is key is that all
 of these components have passed a review and testing process.  A very
 important piece of information is what revision of each file made it into
 the release.

 I know that git takes snapshots of the repository as changes are made and
 that it is possible to reconstruct the file set at any point in time.  But
 unless rules or conventions are established, at any time the repository can
 contain files which are in the process of being modified and thus have not
 passed the testing process.  For the purpose of planning a release, we're
 interested only in the most recently tested and approved files.

 For the sake of argument, I'll assume that a committing a change implies
 that the file has passed the testing process.  So my questions are:

 1) Does git have a built-in way to get a list of all of the most recently
 committed files only at a given point in time, thus automatically recording
 the revisions of all of the component files of a release?   This implies
 that for files which are being modified or which have been staged but not
 committed, that git would go back to find the predecessor file which had
 been committed.

  2) Does git have a way of creating and exporting a list of the most
 recently committed files only?

 3) If the answer to the above questions is No, then what is the normal way
 for a programming shop which is using git to extract/assemble the list of
 approved files for building a release?

 Thank you.

 Jim Vahl

 -Original Message-
 From: Drew Northup [mailto:drew.nort...@maine.edu]
 Sent: Wednesday, October 10, 2012 12:37 PM
 To: Jim Vahl
 Cc: git@vger.kernel.org; 'Skot Davis'
 Subject: Re: A basic question

 On Wed, 2012-10-10 at 11:03 -0700, Jim Vahl wrote:
  All,
 
  Our company is researching version control software, something which
  we have not used previously.  I have a very basic question about git
  which I have not been able to answer from reading.  As I understand
  it, a git repository can be a mixture of files which are under
 development, staged or committed.
  If we make a new build of our product we will obviously only want to
  include the committed (tested) files.
 
  The question is this: what is the usual procedure to retrieve a set of
  committed  files only from the repository to place into a distribution
  or ready to build folder.  The same question goes for tagging a
  release: how does the user get the tag to reference the committed
  files only and not the most recent files which may be under development or
 undergoing testing.
 
  Thanks,
 
  Jim Vahl

 Jim,
 Have you looked at http://git-scm.com/book yet? It sounds to me like you
 have some misconceptions about how Git works. (If so, did it leave you more
 or less confused?)

 --
 -Drew Northup
 
 As opposed to vegetable or mineral error?
 -John Pescatore, SANS NewsBites Vol. 12 Num. 59


 --
 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
--
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: A basic question

2012-10-11 Thread Enrico Weigelt

 1) Does git have a built-in way to get a list of all of the most
 recently
 committed files only at a given point in time, thus automatically
 recording
 the revisions of all of the component files of a release?  

There is no concept of per-file revisions in git.
But you can check which ones are changed in multiple ways, eg:

* per commit, commit-range or per-branch level - see git-log manpage
* between arbitratry commints - see git-diff manpage

 This implies that for files which are being modified or which have
 been staged but not committed, that git would go back to find the
 predecessor file which had been committed.

Forget about the staging issue (index) at this point - it's just
existing in the _local_ clone (eg of some individual developer),
for your usecase you're only interested in what's actually committed
to certain branch(es).


cu
-- 
Mit freundlichen Grüßen / Kind regards 

Enrico Weigelt 
VNC - Virtual Network Consult GmbH 
Head Of Development 

Pariser Platz 4a, D-10117 Berlin
Tel.: +49 (30) 3464615-20
Fax: +49 (30) 3464615-59

enrico.weig...@vnc.biz; www.vnc.de 
--
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 5/8] Prerequisites for creating nice html for all files in Documentation/howto

2012-10-11 Thread Junio C Hamano
Thomas Ackermann th.acke...@arcor.de writes:

From 2b9538990e30ae097c8e3d8b6891c9de31cf Mon Sep 17 00:00:00 2001
 From: Thomas Ackermann th.ac...@arcor.de
 Date: Sat, 29 Sep 2012 17:28:54 +0200
 Subject: [PATCH] Prerequisites for creating nice html for all files in
  Documentation/howto

These four lines are not needed; please remove them from all the patches.

 @@ -149,13 +152,13 @@ then
  
info Found matching head pattern: '$head_pattern'
for group_pattern in $group_patterns; do
 - for groupname in $groups; do
 -   info Checking group: '$groupname' against pattern: '$group_pattern'
 -   matchlen=$(expr $groupname : $group_pattern)
 -   if test $matchlen = ${#groupname}
 -   then
 - grant Allowing group: '$groupname' with pattern: '$group_pattern'
 -   fi
 + for groupname in $groups; do
 +   info Checking group: '$groupname' against pattern: 
 '$group_pattern'
 +   matchlen=$(expr $groupname : $group_pattern)
 +   if test $matchlen = ${#groupname}
 +   then
 + grant Allowing group: '$groupname' with pattern: 
 '$group_pattern'
 +   fi
  done
done

The inner done does not seem to align with the for ...; do it
corresponds to, does it?
--
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 2/8] Shorten two over-long lines in git-bisect-lk2009.txt by removing some white-space

2012-10-11 Thread Junio C Hamano
Thomas Ackermann th.acke...@arcor.de writes:

 @@ -331,7 +331,7 @@ Date:   Sat May 3 11:59:44 2008 -0700
  
  Linux 2.6.26-rc1
  
 -:100644 100644 5cf8258195331a4dbdddff08b8d68642638eea57 
 4492984efc09ab72ff6219a7bc21fb6a957c4cd5 M  Makefile
 +:100644 100644 5cf8258195331a4dbdddff08b8d68642638eea57 
 4492984efc09ab72ff6219a7bc21fb6a957c4cd5 M  Makefile
  bisect run success
  -

If you are redoing this as more like a printed book for easier
reading, it might make more sense to shorten it like this:

:100644 100644 5cf82581... 4492984e... M  Makefile

--
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


[ANNOUNCE] Git v1.8.0-rc2

2012-10-11 Thread Junio C Hamano
A release candidate Git v1.8.0-rc2 is now available for testing
at the usual places.

The release tarballs are found at:

http://code.google.com/p/git-core/downloads/list

and their SHA-1 checksums are:

6c8076b3bcf08ffc53a64bbfb0fa69f82096f711  git-1.8.0.rc2.tar.gz
86aca88717928d9d3a38c47a315d2c57402747ca  git-htmldocs-1.8.0.rc2.tar.gz
f4023824ee6b3ad561dba5dbdfe6e07532904a27  git-manpages-1.8.0.rc2.tar.gz

Also the following public repositories all have a copy of the v1.8.0-rc2
tag and the master branch that the tag points at:

  url = git://repo.or.cz/alt-git.git
  url = https://code.google.com/p/git-core/
  url = git://git.sourceforge.jp/gitroot/git-core/git.git
  url = git://git-core.git.sourceforge.net/gitroot/git-core/git-core
  url = https://github.com/gitster/git

Things seem to have calmed down and hopefully we can have the final
1.8.0 without regression soon.



Changes since v1.8.0-rc1 are as follows:

Ben Walton (1):
  tests: cp -a is a GNUism

Jonathan Nieder (2):
  git svn: work around SVN 1.7 mishandling of svn:special changes
  svn test: escape peg revision separator using empty peg rev

Junio C Hamano (2):
  gitcli: parse-options lets you omit tail of long options
  Git 1.8.0-rc2

Nguyễn Thái Ngọc Duy (2):
  gitignore.txt: suggestions how to get literal # or ! at the beginning
  attr: a note about the order of .gitattributes lookup

Ramkumar Ramachandra (1):
  Git url doc: mark ftp/ftps as read-only and deprecate them

Ramsay Allan Jones (1):
  MALLOC_CHECK: Allow checking to be disabled from config.mak

Simon Ruderich (1):
  l10n: de.po: fix a few minor typos

Øyvind A. Holm (1):
  configure.ac: Add missing comma to CC_LD_DYNPATH

--
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: filter-branch IO optimization

2012-10-11 Thread Thomas Rast
Enrico Weigelt enrico.weig...@vnc.biz writes:

 for certain projects, I need to regularily run filter-branch on quite
 large repos (10k commits), and that needs to be run multiple times,
 which takes several hours, so I'm looking for optimizations.
[...]
 #2: run a tree-filter which:
 * removes all files not belonging to the wanted module
 * move the module directory under another subdir (./addons/)
 * fix author/comitter name/email if empty (because otherwise fails)

The usual advice is use an index-filter instead.  It's *much* faster
than a tree filter.  However:

 * fix charater sets and indentions of source files

That last step is rather crazy.  At the very least you will want to only
operate on files that were changed since the parent commit, so as to
avoid scanning the whole tree.  If you do this right, it should also fit
into an index-filter.

-- 
Thomas Rast
trast@{inf,student}.ethz.ch
--
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 after cherry-pick -n conflict clobbers .git/COMMIT_EDITMSG

2012-10-11 Thread dirson
  ~/softs/linux$ echo foo  .git/COMMIT_EDITMSG

 Why are you mucking with such an internal implementation detail in
 the first place?

I only tried to make it terse for the bugreport, I hit this while I
was resolving conflicts during a merge.  I aknowledge that using
cherry-pick -n to bring some contents to resolve a conflict is not
really nominal - my use case involves re-merging an updated upstream
branch, and bringing in fixups to the original merge.

  ~/softs/linux$ git cherry-pick -n b55f3d92cd
  error: could not apply b55f3d9... Linux 2.6.32.26
  hint: after resolving the conflicts, mark the corrected paths
  hint: with 'git add ' or 'git rm '
  ~/softs/linux$ cat .git/COMMIT_EDITMSG
  foo
 
  So far, so good. But then git commit brings me the message
 from the
  cherry-picked commit plus the list of conflicted files, and I
 can verify that
  it is now the contents of .git/COMMIT_EDITMSG.

 You verified that what is now in .git/COMMIT_EDITMSG? The commit
 log message for you to edit to record the result of the cherry-pick?

Precisely

 If that is the case, what is the problem?

I used -n precisely because I did not want to make a standalone
commit, and the message from the cherry-picked source has no value to
me.  If it had, I would instead have used cherry-pick without -n, and
amended the commit afterwards.

In the general case, I only ever use -n when I'm squashing changes
and similar tasks.  Are there use cases out there, where it makes
sense to keep that source message, when we don't want the commit to be
created right away ?


 If anything you had in .git/COMMIT_EDITMSG before you started
 'cherry-pick -n', edit further to adjust, and then 'commit'
 sequence were to appear in the editor to edit the commit log,
 it would be a bug, I would think.

Well, seems to depend on use case - I find it a bug when the merge message,
notably containing the list of conflicting files, gets clobbered.

Also, I have not checked how git gui reacts, but I would assume that
when carefully and iteratively composing a commit message from there,
which is IIRC managed using .git/COMMIT_EDITMSG, it would not be
desired to get this content clobbered the same way.

To me it looks like the problem is that the commit message in
preparation is not considered precious information, when there are at
least some cases where it indeed should be.  I'm not sure however how
that should be done:

* suddenly claiming it is precious (and require some form of -f to
  clobber it) when it was mostly not is likely to break a number of
  use cases
* looking at the context (are we resolving a merge or similar ?) to
  consider it precious is likely to miss some cases
* declaring a new official location (or API/command ?) to store
  considered-precious message being composed may bring its own lot of
  semantic difficulties
--
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: build deps

2012-10-11 Thread Thiago Farina
On Mon, Oct 8, 2012 at 7:52 PM, Andrew Wong andrew.k...@gmail.com wrote:
 On 10/08/12 17:36, Thiago Farina wrote:
 OK, after running ./configure I tried the make command again.

 CC credential-store.o
 /bin/sh: clang: not found
 make: *** [credential-store.o] Error 127

 $ which clang
 /home/tfarina/chromium/src/third_party/llvm-build/Release+Asserts/bin/clang

 $ clang --version
 clang version 3.2 (trunk 163674)
 Target: x86_64-unknown-linux-gnu
 Thread model: posix
 Looks like something went wrong with make setting PATH. I wonder if
 the + sign in your path is somehow messing things up.

Would be something that could be fixed in git?

 Are you trying to compile specifically with clang?
Nope, it just happen that I switched to clang because I use it to
compile chromium and I need it to use the chrome_plugin[1].

 If not, maybe try
 unsetting the CC env var, and run configure again?
Just setting CC to gcc works for me. But still, I'd like to be able to
build with clang (may be as you noted is just something with the + in
my PATH).

[1] 
http://git.chromium.org/gitweb/?p=chromium.git;a=tree;f=tools/clang/plugins;h=8e79d8f35d5ccfee82b6ab8f27ea8b5d820c772d;hb=HEAD
--
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] gitweb.cgi: fix comitter_tz typo in feed

2012-10-11 Thread Dylan Alex Simon
gitweb's feeds sometimes contained committer timestamps in the wrong timezone
due to a misspelling.

Signed-off-by: Dylan Simon dy...@dylex.net
---
 gitweb/gitweb.perl |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 7f8c187..10ed9e5 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -8028,7 +8028,7 @@ sub git_feed {
%latest_commit = %{$commitlist[0]};
my $latest_epoch = $latest_commit{'committer_epoch'};
exit_if_unmodified_since($latest_epoch);
-   %latest_date = parse_date($latest_epoch, 
$latest_commit{'comitter_tz'});
+   %latest_date = parse_date($latest_epoch, 
$latest_commit{'committer_tz'});
}
print $cgi-header(
-type = $content_type,
-- 
1.7.10.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


[minor] two tests broken when run with a --root directory that's a symlink

2012-10-11 Thread Ævar Arnfjörð Bjarmason
These issues are minor, I noticed it because I test with /dev/shm/git
as the --root, which on Debian is symlinked to /run/..

$ rm -rf /tmp/{foo,bar}
$ mkdir /tmp/target; ln -s /tmp/target /tmp/link
$ prove ./t4035-diff-quiet.sh ./t9903-bash-prompt.sh :: --root=/tmp/target
./t4035-diff-quiet.sh ... ok
./t9903-bash-prompt.sh .. ok
All tests successful.
Files=2, Tests=64,  1 wallclock secs ( 0.04 usr  0.00 sys +  0.07
cusr  0.06 csys =  0.17 CPU)
Result: PASS
$ prove ./t4035-diff-quiet.sh ./t9903-bash-prompt.sh :: --root=/tmp/link
./t4035-diff-quiet.sh ... Dubious, test returned 1 (wstat 256, 0x100)
Failed 3/20 subtests
./t9903-bash-prompt.sh .. Dubious, test returned 1 (wstat 256, 0x100)
Failed 6/44 subtests

Everything else in the test suite passes with a --root that's a symlink.
--
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] bash prompt: fix tests when run with a symlink --root

2012-10-11 Thread SZEDER Gábor
Some __gitdir() tests fail when they're run with a --root directory
which is a symlink, because they use $TRASH_DIRECTORY to construct the
expected absolute paths.  Use the path got from 'pwd -P' instead
throughout the test script.

Signed-off-by: SZEDER Gábor sze...@ira.uka.de
---
 t/t9903-bash-prompt.sh | 34 ++
 1 file changed, 18 insertions(+), 16 deletions(-)

diff --git a/t/t9903-bash-prompt.sh b/t/t9903-bash-prompt.sh
index f17c1f8b..7a7b198f 100755
--- a/t/t9903-bash-prompt.sh
+++ b/t/t9903-bash-prompt.sh
@@ -11,6 +11,8 @@ test_description='test git-specific bash prompt functions'
 
 actual=$TRASH_DIRECTORY/actual
 
+TRASH_ROOT=$(pwd -P)
+
 test_expect_success 'setup for prompt tests' '
mkdir -p subdir/subsubdir 
git init otherrepo 
@@ -32,9 +34,9 @@ test_expect_success 'setup for prompt tests' '
 '
 
 test_expect_success 'gitdir - from command line (through $__git_dir)' '
-   echo $TRASH_DIRECTORY/otherrepo/.git  expected 
+   echo $TRASH_ROOT/otherrepo/.git  expected 
(
-   __git_dir=$TRASH_DIRECTORY/otherrepo/.git 
+   __git_dir=$TRASH_ROOT/otherrepo/.git 
__gitdir  $actual
) 
test_cmp expected $actual
@@ -59,7 +61,7 @@ test_expect_success 'gitdir - .git directory in cwd' '
 '
 
 test_expect_success 'gitdir - .git directory in parent' '
-   echo $TRASH_DIRECTORY/.git  expected 
+   echo $TRASH_ROOT/.git  expected 
(
cd subdir/subsubdir 
__gitdir  $actual
@@ -77,7 +79,7 @@ test_expect_success 'gitdir - cwd is a .git directory' '
 '
 
 test_expect_success 'gitdir - parent is a .git directory' '
-   echo $TRASH_DIRECTORY/.git  expected 
+   echo $TRASH_ROOT/.git  expected 
(
cd .git/refs/heads 
__gitdir  $actual
@@ -86,9 +88,9 @@ test_expect_success 'gitdir - parent is a .git directory' '
 '
 
 test_expect_success 'gitdir - $GIT_DIR set while .git directory in cwd' '
-   echo $TRASH_DIRECTORY/otherrepo/.git  expected 
+   echo $TRASH_ROOT/otherrepo/.git  expected 
(
-   GIT_DIR=$TRASH_DIRECTORY/otherrepo/.git 
+   GIT_DIR=$TRASH_ROOT/otherrepo/.git 
export GIT_DIR 
__gitdir  $actual
) 
@@ -96,9 +98,9 @@ test_expect_success 'gitdir - $GIT_DIR set while .git 
directory in cwd' '
 '
 
 test_expect_success 'gitdir - $GIT_DIR set while .git directory in parent' '
-   echo $TRASH_DIRECTORY/otherrepo/.git  expected 
+   echo $TRASH_ROOT/otherrepo/.git  expected 
(
-   GIT_DIR=$TRASH_DIRECTORY/otherrepo/.git 
+   GIT_DIR=$TRASH_ROOT/otherrepo/.git 
export GIT_DIR 
cd subdir 
__gitdir  $actual
@@ -108,15 +110,15 @@ test_expect_success 'gitdir - $GIT_DIR set while .git 
directory in parent' '
 
 test_expect_success 'gitdir - non-existing $GIT_DIR' '
(
-   GIT_DIR=$TRASH_DIRECTORY/non-existing 
+   GIT_DIR=$TRASH_ROOT/non-existing 
export GIT_DIR 
test_must_fail __gitdir
)
 '
 
 test_expect_success 'gitdir - gitfile in cwd' '
-   echo $TRASH_DIRECTORY/otherrepo/.git  expected 
-   echo gitdir: $TRASH_DIRECTORY/otherrepo/.git  subdir/.git 
+   echo $TRASH_ROOT/otherrepo/.git  expected 
+   echo gitdir: $TRASH_ROOT/otherrepo/.git  subdir/.git 
test_when_finished rm -f subdir/.git 
(
cd subdir 
@@ -126,8 +128,8 @@ test_expect_success 'gitdir - gitfile in cwd' '
 '
 
 test_expect_success 'gitdir - gitfile in parent' '
-   echo $TRASH_DIRECTORY/otherrepo/.git  expected 
-   echo gitdir: $TRASH_DIRECTORY/otherrepo/.git  subdir/.git 
+   echo $TRASH_ROOT/otherrepo/.git  expected 
+   echo gitdir: $TRASH_ROOT/otherrepo/.git  subdir/.git 
test_when_finished rm -f subdir/.git 
(
cd subdir/subsubdir 
@@ -137,7 +139,7 @@ test_expect_success 'gitdir - gitfile in parent' '
 '
 
 test_expect_success SYMLINKS 'gitdir - resulting path avoids symlinks' '
-   echo $TRASH_DIRECTORY/otherrepo/.git  expected 
+   echo $TRASH_ROOT/otherrepo/.git  expected 
mkdir otherrepo/dir 
test_when_finished rm -rf otherrepo/dir 
ln -s otherrepo/dir link 
@@ -152,7 +154,7 @@ test_expect_success SYMLINKS 'gitdir - resulting path 
avoids symlinks' '
 test_expect_success 'gitdir - not a git repository' '
(
cd subdir/subsubdir 
-   GIT_CEILING_DIRECTORIES=$TRASH_DIRECTORY 
+   GIT_CEILING_DIRECTORIES=$TRASH_ROOT 
export GIT_CEILING_DIRECTORIES 
test_must_fail __gitdir
)
@@ -250,7 +252,7 @@ echo edit $(git log -1 --format=%h)  $1
 EOF
test_when_finished rm -f fake_editor.sh 
chmod a+x fake_editor.sh 
-   test_set_editor $TRASH_DIRECTORY/fake_editor.sh 
+   

Re: [PATCH] git-cvsimport: support local timezone

2012-10-11 Thread Michael Haggerty
On 10/11/2012 10:48 PM, Chris Rorvick wrote:
 CVS patches are unconditionally imported with a UTC timezone.  Allow
 the local timezone by adding -l to the command line or specifying
 cvsimport.l in the config.
 
 This could be made the default behavior, as setting TZ=UTC in the
 environment before doing the import is equivalent to the current
 behavior.  But since a new default may be an unwelcome surprise to
 some, make this new behavior available os an option.

According to rcsfile(7), all times in RCS/CVS files are recorded in UTC.
 So why do you need this feature?

Michael

-- 
Michael Haggerty
mhag...@alum.mit.edu
http://softwareswirl.blogspot.com/
--
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: [minor] two tests broken when run with a --root directory that's a symlink

2012-10-11 Thread Michael Haggerty
On 10/11/2012 11:55 PM, Ævar Arnfjörð Bjarmason wrote:
 These issues are minor, I noticed it because I test with /dev/shm/git
 as the --root, which on Debian is symlinked to /run/..
 
 $ rm -rf /tmp/{foo,bar}
 $ mkdir /tmp/target; ln -s /tmp/target /tmp/link
 $ prove ./t4035-diff-quiet.sh ./t9903-bash-prompt.sh :: --root=/tmp/target
 ./t4035-diff-quiet.sh ... ok
 ./t9903-bash-prompt.sh .. ok
 All tests successful.
 Files=2, Tests=64,  1 wallclock secs ( 0.04 usr  0.00 sys +  0.07
 cusr  0.06 csys =  0.17 CPU)
 Result: PASS
 $ prove ./t4035-diff-quiet.sh ./t9903-bash-prompt.sh :: --root=/tmp/link
 ./t4035-diff-quiet.sh ... Dubious, test returned 1 (wstat 256, 0x100)
 Failed 3/20 subtests
 ./t9903-bash-prompt.sh .. Dubious, test returned 1 (wstat 256, 0x100)
 Failed 6/44 subtests
 
 Everything else in the test suite passes with a --root that's a symlink.

I ran into the same problem a while ago, and submitted a patch series
that fixes t4035 (whose problems are related to GIT_CEILING_DIRECTORIES):

http://thread.gmane.org/gmane.comp.version-control.git/206633

Junio didn't like the approach so much and I haven't yet had time to
submit a revised version.

Michael

-- 
Michael Haggerty
mhag...@alum.mit.edu
http://softwareswirl.blogspot.com/
--
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: [minor] two tests broken when run with a --root directory that's a symlink

2012-10-11 Thread Junio C Hamano
Michael Haggerty mhag...@alum.mit.edu writes:

 I ran into the same problem a while ago, and submitted a patch series
 that fixes t4035 (whose problems are related to GIT_CEILING_DIRECTORIES):

 http://thread.gmane.org/gmane.comp.version-control.git/206633

 Junio didn't like the approach so much and I haven't yet had time to
 submit a revised version.

I like the approach of comparing each element of CEILING and the
directory not before but after resolving any symlinks in them.

My comments was only about the implementation that seemed to make
the API layering boundary more complex than necessary.


--
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 v4 00/12] Wildmatch v4

2012-10-11 Thread Junio C Hamano
Junio C Hamano gits...@pobox.com writes:

 Ahh, it must be this bits from t/test-lib.sh

  t/test-lib.sh | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

 diff --git i/t/test-lib.sh w/t/test-lib.sh
 index 514282c..489bc80 100644
 --- i/t/test-lib.sh
 +++ w/t/test-lib.sh
 @@ -230,7 +230,7 @@ else
   say_color() {
   test -z $1  test -n $quiet  return
   shift
 - echo $*
 + printf %s\n $*
   }
  fi

I'll queue this fix separately before your series on 'pu'.

-- 8 --
Subject: [PATCH] test-lib: Fix say_color () not to interpret \a\b\c in the 
message

When running with color disabled (e.g. under prove to produce TAP
output), say_color() helper function is defined to use echo to show
the message.  With a message that ends with \c, echo is allowed to
interpret it as Do not end the line with LF.

Use printf %s\n to emit the message literally.

Signed-off-by: Junio C Hamano gits...@pobox.com
---
 t/test-lib.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/t/test-lib.sh b/t/test-lib.sh
index c0d04c4..280b3aa 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -169,7 +169,7 @@ else
say_color() {
test -z $1  test -n $quiet  return
shift
-   echo $*
+   printf %s\n $*
}
 fi
 
-- 
1.8.0.rc1.82.ga68bb49
--
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] git-cvsimport: support local timezone

2012-10-11 Thread Christopher Rorvick
On Thu, Oct 11, 2012 at 5:43 PM, Michael Haggerty mhag...@alum.mit.edu wrote:
 On 10/11/2012 10:48 PM, Chris Rorvick wrote:
 CVS patches are unconditionally imported with a UTC timezone.  Allow
 the local timezone by adding -l to the command line or specifying
 cvsimport.l in the config.

 This could be made the default behavior, as setting TZ=UTC in the
 environment before doing the import is equivalent to the current
 behavior.  But since a new default may be an unwelcome surprise to
 some, make this new behavior available os an option.

 According to rcsfile(7), all times in RCS/CVS files are recorded in UTC.
  So why do you need this feature?

 Michael

Hi Michael,

Precisely because of this limitation.  RCS files are not as expressive
as a Git commit so I need a way to fill in the blanks.

This is analogous to the cvs-authors file.  The RCS files in a CVS
repository say the author of my commits is crorvick but that is
neither my name nor email.  cvsimport allows me to overcome this
limitation by specifying a mapping from author username to full name
and email.

Likewise, just because the RCS file has a UTC timestamp does not mean
the commit originated in Greenwich, UK.  Git includes the timezone
offset in its timestamps, so it is reasonable to allow me to specify
what is appropriate.

This is not a big deal for a one-time import as a simple filter-branch
run can fix this pretty quickly.  But this feature would be nice when
running cvsimport incrementally.

Thanks!

Chris Rorvick
--
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: A basic question

2012-10-11 Thread Sitaram Chamarty
On Thu, Oct 11, 2012 at 11:08 PM, Jim Vahl j...@wmdb.com wrote:
 Drew,

 Thanks for responding to my email!

 Yes, I did read most of the Book, although I admit that I skimmed over some
 of the more technical parts.  There is still a key part of how git is used
 in a commercial environment which I don't understand.

 When we release a new version of our product, it is comprised of over a
 hundred files.  Some of these files have not changed for years, and some
 have been revised/fixed/updated quite recently.  But what is key is that all
 of these components have passed a review and testing process.  A very
 important piece of information is what revision of each file made it into
 the release.

I'm afraid I don't have anything to add to what was already said but I
can't resist asking: are you coming from clearcase?
--
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: build deps

2012-10-11 Thread Andrew Wong
On 10/11/12 16:54, Thiago Farina wrote:
 Just setting CC to gcc works for me. But still, I'd like to be able to
 build with clang (may be as you noted is just something with the + in
 my PATH).
Oh, I just realized you were using sudo. The PATH environment was
probably not inherited when you use sudo to run make. So the
subsequent shells statred by make' were not able to find clang.
--
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: A basic question

2012-10-11 Thread PJ Weisberg
On Thu, Oct 11, 2012 at 10:38 AM, Jim Vahl j...@wmdb.com wrote:

 1) Does git have a built-in way to get a list of all of the most recently
 committed files only at a given point in time, thus automatically recording
 the revisions of all of the component files of a release?   This implies
 that for files which are being modified or which have been staged but not
 committed, that git would go back to find the predecessor file which had
 been committed.

I feel like I'm missing the point of your questions.  Why do you think
your central repository would contain anything that hadn't been
committed?

-PJ

Gehm's Corollary to Clark's Law: Any technology distinguishable from
magic is insufficiently advanced.
--
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: build deps

2012-10-11 Thread Thiago Farina
On Thu, Oct 11, 2012 at 10:06 PM, Andrew Wong
andrew.kw.w.li...@gmail.com wrote:
 On 10/11/12 16:54, Thiago Farina wrote:
 Just setting CC to gcc works for me. But still, I'd like to be able to
 build with clang (may be as you noted is just something with the + in
 my PATH).
 Oh, I just realized you were using sudo. The PATH environment was
 probably not inherited when you use sudo to run make. So the
 subsequent shells statred by make' were not able to find clang.

Interesting, thank you for your observation.

This worked for me now:

$ git clone  https://github.com/gitster/git
$ cd git
$ make configure
$ ./configure
$ make
$ ./git version
git version 1.8.0.rc2

clang reported this:
combine-diff.c:1006:19: warning: adding 'int' to a string does not
append to the string [-Wstring-plus-int]
prefix = COLONS + offset;
 ~~~^~~~
combine-diff.c:1006:19: note: use array indexing to silence this
warning
prefix = COLONS + offset;
^
   [   ]
1 warning generated.

grep.c:451:16: warning: comparison of unsigned enum expression  0 is
always false [-Wtautological-compare]
if (p-field  0 || GREP_HEADER_FIELD_MAX = p-field)
 ^ ~
1 warning generated.
--
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