Re: [PATCH] submodule: make 'show' an alias for 'summary'

2012-09-30 Thread Ramkumar Ramachandra
Hi Jens,

Jens Lehmann wrote:
> I'm very interested in your feedback as a first time submodule user,
> what you wrote above makes sense and explains why you did that patch
> (and it would have been nice to read some of it in the commit message
> ;-). What information did you expect to get from a "git submodule
> show" which isn't already provided by "git status" and "git diff"
> (especially as they give you some information the "git submodule"
> commands don't)?

I expected 'git submodule show' to list all the submodules, and show
changes to specific submodules like the 'git submodule summary'
output.

Ram
--
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] submodule: use abbreviated sha1 in 'status' output

2012-09-30 Thread Ramkumar Ramachandra
Jens Lehmann wrote:
> I suspect you got the idea for this patch from Marc's recent comment:
> [...]

Yes, I did.

> That is just a single user so far indicating your patch /could/ be an
> improvement. I think we need quite some more votes on that before we
> should do a change like this.

I thought it's a porcelain command like 'git status'- we don't need
votes to change the output format of 'git status', do we?

Ram
--
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 gui does not open bare repositories

2012-09-30 Thread Stefan Näwe
Am 28.09.2012 10:44, schrieb Stefan Näwe:

> I get "Not a Git repository: remote.git" as well, when I run
> git gui "somewhere" (i.e. not in "remote.git") 

i.e.:

  $ cd /not/a/repo
  $ git gui

> and the select "Open Existing Repository".
> 
> I get "Cannot use bare repository: .../remote.git" when I run git gui
> from inside the "remote.git" directory.

i.e.:

  $ cd /path/to/bare-repo.git
  $ git gui

> Both on WinXP with msysGit.

And the same on Linux with Git v1.7.12

Stefan
-- 

/dev/random says: Press any key to continue or any other key to quit...
python -c "print 
'73746566616e2e6e616577654061746c61732d656c656b74726f6e696b2e636f6d'.decode('hex')"
--
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 8/9] longest_ancestor_length(): resolve symlinks before comparing paths

2012-09-30 Thread Junio C Hamano
Michael Haggerty  writes:

> I think I would advocate that the prefix has to match the front of
> the path exactly (including any trailing slashes) and either
>
> strlen(prefix) == 0
> or the prefix ended with a '/'
> or the prefix and path are identical
> or the character in path following the matching part is a '/'
>
> This would allow the "is path its own prefix" policy to be decided by
> the caller by either including or omitting a trailing slash on the
> prefix argument.

I think that is sensible thing to do.

The primary thing I found questionable was that the function, given
"/net/wink/project/frotz" to check against "/pub:/s" (or "/pub/:/s/"
if you like), will report that "/net/wink/project" directory is the
longest ancestor, when "/s" is a symlink that happens to point at
"/net/wink/project".  It is very counter-intuitive when you view its
two input strings as strings.  By making its sole caller expand the
symbolic links, it would be a lot clearer what is going on to
anybody who follow the codepath.  We have one path obtained from
getcwd() and a set of paths all of which are real paths without
symbolic aliasing, and we check if one among the latter cover
an earlier part of the former.

--
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: Commit cache to speed up rev-list and merge

2012-09-30 Thread Nguyen Thai Ngoc Duy
On Mon, Oct 1, 2012 at 9:27 AM, Shawn Pearce  wrote:
> Git has enough magic switches. It doesn't need yet another magic
> switch that one group of users needs to set, and another can safely
> ignore because their project's usage just happens to align with Linus
> Torvald's current world view.

I see it as tuning, not switching.  It's like setting the number of
commits where bitmaps are taken. We can see the commit cache as a
table, where columns are commit properties. We have a column for date,
one for the first parent. Users can choose to have a third column for
the second parent, or another one for root tree sha-1. The
implementation could be made generic to support caching any 
sha1-columns.
-- 
Duy
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 8/9] longest_ancestor_length(): resolve symlinks before comparing paths

2012-09-30 Thread Michael Haggerty
On 09/30/2012 10:00 AM, Junio C Hamano wrote:
> Michael Haggerty  writes:
> 
>> longest_ancestor_length() relies on a textual comparison of directory
>> parts to find the part of path that overlaps with one of the paths in
>> prefix_list.  But this doesn't work if any of the prefixes involves a
>> symbolic link, because the directories will look different even though
>> they might logically refer to the same directory.  So canonicalize the
>> paths listed in prefix_list using real_path_if_valid() before trying
>> to find matches.
> 
> I somehow feel that this is making the logic unnecessarily
> convoluted by solving the problem at a wrong level.
> 
> If longest_ancestor_length() takes a single string and a list of
> candidate string prefixes, conceptually it should be usable for any
> hierarchy-looking string that uses slashes as hierarchy separator
> (e.g. refs that may be stored in packed-refs that you cannot expect
> lstat(2) or readlink(2) to give you any sensible results).
> 
> The real problem is that the list given from the environment may
> contain a path that violates that "it suffices to take the longest
> string-prefix taking slashes into account" assumption in such a
> generic l-a-l implementation, no?  And this patch solves it by
> making l-a-l _less_ generic and forcing it to be aware of the glitch
> of its caller (you can either blame clueless user who lies when
> setting the GIT_CEILING_DIRECTORIES by including paths contaminated
> with symlinks, or blame the calling setup_git_directory_gently_1()
> function that does not resolve the symbolic links before calling
> this function).
> 
> As l-a-l is only used by the "stop at the ceiling" logic, isn't it a
> far simpler solution to keep the function work at the string level,
> and make the caller fix its input, i.e. the value taken from the
> environment variable, before calling it?  That is, grab the value of
> GIT_CEILING_DIRECTORIES, split it into a list at PATH_SEP (while
> rejecting any non-absolute paths), normalize the elements of that
> list by resolving symbolic links, and then pass the cwd[] and the
> normalized string list to l-a-l?
> 
> The resulting callsite in setup_git_directory_gently_1() would pass
> cwd[] and the ceiling_dirs (which now is a string list), all of
> whose elements would happen to begin with "/" (or dos drive prefix
> followed by the "root" symbol), but l-a-l can be written in such a
> way that it does not even require that all the input has to begin at
> root, which would later make it usable with things that are not
> paths (references, for example, all of which begin with "refs/" and
> not "/refs/").

I agree that longest_ancestor_length() is not very generic or
interesting anymore.  Nearly all of its "added value" comes from the
normalize_path_callback() helper function.  One possibility would be to
inline it at the one place it is called.

The function string_list_longest_prefix() was my attempt to isolate the
kernel of generic functionality from longest_ancestor_path().  It is
*almost* the function that you are proposing, with the exception that it
does not ensure that the prefix match ends at a "/" boundary.  So
another alternative could be to change this function to respect "/"
boundaries.  (After the change, the function might not belong in the
string-list API anymore.)

However, the semantics of a function that matches prefixes at "/"
boundaries is not entirely obvious.  Suppose we would implement the test
via a function like path_prefixcmp(path, prefix).  I can think of a few
policy questions that would have to be answered:

* Is a trailing slash on the prefix argument required, optional, or
prohibited?  What if the prefix is "/" or "//" or "c:/"?

* Is a trailing slash on the path argument optional/prohibited?  Are "/"
or "//" allowed as path arguments?

* Is a path its own prefix?

path_prefixcmp("a/b", "a/b") -> true or false?

(For the implementation of longest_ancestor_path(), we would prefer this
to return "false".)  Or does the answer depend on whether the prefix has
a trailing slash?

path_prefixcmp("a/b", "a/b") -> true?
path_prefixcmp("a/b", "a/b/") -> false?

Part of the reason that I implemented string_list_longest_prefix()
instead of the function that you suggest is that the behavior of the
former is far more obvious.

I think I would advocate that the prefix has to match the front of the
path exactly (including any trailing slashes) and either

strlen(prefix) == 0
or the prefix ended with a '/'
or the prefix and path are identical
or the character in path following the matching part is a '/'

This would allow the "is path its own prefix" policy to be decided by
the caller by either including or omitting a trailing slash on the
prefix argument.

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 majordom

Re: git pull --no-ff documentation

2012-09-30 Thread Junio C Hamano
乙酸鋰  writes:

> The order of options in git pull is not clear in the documentation
> It only says
> git pull [options] [ [...]]
> So we have no idea which options should come first
>
> I tried
> git pull -v --no-tags --progress --no-ff origin
> but failed with unknown option 'no-ff'.
>
> But if I ran
> git pull -v --no-ff  --no-tags --progress origin
> it succeeded.

This actually is not about --no-ff but about --no-tags.  Any option
that "pull" itself does not care about stops the command line parser
and the remainder of the command line is fed to underlying "fetch".

Perhaps something like this?  But you should trace the codepath
involved to see if this covers all uses of the --tags before using
it for real projects, as I didn't.

 git-pull.sh | 21 ++---
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git i/git-pull.sh w/git-pull.sh
index 2a10047..a53c1e5 100755
--- i/git-pull.sh
+++ w/git-pull.sh
@@ -39,7 +39,7 @@ test -z "$(git ls-files -u)" || die_conflict
 test -f "$GIT_DIR/MERGE_HEAD" && die_merge
 
 strategy_args= diffstat= no_commit= squash= no_ff= ff_only=
-log_arg= verbosity= progress= recurse_submodules=
+log_arg= verbosity= progress= recurse_submodules= fetch_tags=
 merge_args= edit=
 curr_branch=$(git symbolic-ref -q HEAD)
 curr_branch_short="${curr_branch#refs/heads/}"
@@ -62,6 +62,8 @@ do
progress=--no-progress ;;
-n|--no-stat|--no-summary)
diffstat=--no-stat ;;
+   -t|--t|--ta|--tag|--tags|--no-tags)
+   fetch_tags="$1" ;;
--stat|--summary)
diffstat=--stat ;;
--log|--no-log)
@@ -141,15 +143,12 @@ done
 
 error_on_no_merge_candidates () {
exec >&2
-   for opt
-   do
-   case "$opt" in
-   -t|--t|--ta|--tag|--tags)
-   echo "Fetching tags only, you probably meant:"
-   echo "  git fetch --tags"
-   exit 1
-   esac
-   done
+   case "$fetch_tags" in
+   -t|--t|--ta|--tag|--tags)
+   echo "Fetching tags only, you probably meant:"
+   echo "  git fetch --tags"
+   exit 1
+   esac
 
if test true = "$rebase"
then
@@ -213,7 +212,7 @@ test true = "$rebase" && {
done
 }
 orig_head=$(git rev-parse -q --verify HEAD)
-git fetch $verbosity $progress $dry_run $recurse_submodules --update-head-ok 
"$@" || exit 1
+git fetch $verbosity $progress $dry_run $recurse_submodules $fetch_tags 
--update-head-ok "$@" || exit 1
 test -z "$dry_run" || exit 0
 
 curr_head=$(git rev-parse -q --verify 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


git pull --no-ff documentation

2012-09-30 Thread 乙酸鋰
Hi,

The order of options in git pull is not clear in the documentation
It only says
git pull [options] [ [...]]
So we have no idea which options should come first

I tried
git pull -v --no-tags --progress --no-ff origin
but failed with unknown option 'no-ff'.

But if I ran
git pull -v --no-ff  --no-tags --progress origin
it succeeded.

Regards,
ch3cooli
--
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] Remove the hard coded length limit on variable names in config files

2012-09-30 Thread Michael Haggerty
On 09/30/2012 08:20 PM, Ben Walton wrote:
>> The patch doesn't apply to the current master; it appears to have been
>> built against master 883a2a3504 (2012-02-23) or older.  It will have to
>> be rebased to the current master.
> 
> Junio had asked that it be based on maint so that's what I (thought
> I?) did.  I'm happy to redo it against master if that's better though.

That explains it.  Sorry, I hadn't seen that conversation.  (In the
future, if a patch applies against something other than master, please
add a note in the cover letter or in the patch comment after the "--".)

It is OK with me to leave the patch against maint, if that is what Junio
wanted.  It would help, though, if you rebase it to the latest maint
(the conflict seems easy to fix).

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: Commit cache to speed up rev-list and merge

2012-09-30 Thread Shawn Pearce
On Sun, Sep 30, 2012 at 7:05 PM, Nguyen Thai Ngoc Duy  wrote:
> On Mon, Oct 1, 2012 at 8:49 AM, Shawn Pearce  wrote:
>> On Thu, Sep 27, 2012 at 7:14 PM, Nguyen Thai Ngoc Duy  
>> wrote:
>>> On Thu, Sep 27, 2012 at 10:51 PM, Shawn Pearce  wrote:
 In Linus' Linux kernel tree there are currently about 323,178 commits.
 If we store just the pre-parsed commit time as an int32 field this is
 an additional 1.2 MiB of data in the pack-*.idx file, assuming we can
 use additional data like pack offset position to correlate commit to
 the parsed int. If we stored parent pointers in a similar way you
 probably need at least 3.6 MiB of additional disk space on the index.
 For example, use 12 bytes for each commit to store enough of the
 parsed commit time to sort commits, and up to 2 parent pointers per
 commit with a reserved magic value for octopus merges to mean the
 commit itself has to be parsed to get the graph structure correct.
>>>
>>> This is much better than my naive approach (storing sha-1 and
>>> timestamps). We could use less space by storing parent pointer of
>>> non-merge commits only. Merge commits linux-2.6 is 6% the number of
>>> commits. git.git has higher percentage, 21%. I bet many projects do
>>> not merge as much and the number of merge commits is less than 5%.
>>
>> Some projects merge quite often. Android's frameworks/base repository
>> has a very large number of merges. Out of 79905 commits reachable from
>> the master branch, 65.3% are merges. So actually there are more merge
>> commits in the Android history than there are code commits. A cache of
>> only non-merges may be worthless on such a history.
>
> The good thing about these cache is it's configurable. Merge-preferred
> projects can choose to cache the first two parents. Non-merge projects
> can choose to cache just the first parent. We don't need a fixed
> format for both.

Git has enough magic switches. It doesn't need yet another magic
switch that one group of users needs to set, and another can safely
ignore because their project's usage just happens to align with Linus
Torvald's current world view.
--
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: Using bitmaps to accelerate fetch and clone

2012-09-30 Thread Shawn Pearce
On Sun, Sep 30, 2012 at 6:59 PM, Nguyen Thai Ngoc Duy  wrote:
> On Mon, Oct 1, 2012 at 8:07 AM, Shawn Pearce  wrote:
>>> You mentioned this before in your idea mail a while back. I wonder if
>>> it's worth storing bitmaps for all packs, not just the self contained
>>> ones.
>>
>> Colby and I started talking about this late last week too. It seems
>> feasible, but does add a bit more complexity to the algorithm used
>> when enumerating.
>
> Yes. Though at server side, if it's too much trouble, the packer can
> just ignore open packs and use only closed ones.

Its not trouble once the code is written. We were just trying to be
expedient in producing a prototype that we could start to deploy on
real-world workloads. Enumerating the non-closed-pack objects using
the classical implementation is still slow and consumes CPU time at
the server, using partial bitmaps should eliminate most of that CPU
usage and reduce server loads.

One of the more troublesome problems is building the bitmaps is
difficult from a streaming processor like index-pack. You need the
reachability graph for all objects, which is not currently produced
when moving data over the wire. We do an fsck after-the-fact to verify
we didn't get corrupt data, but this is optional and currently after
the pack is stored. We need to refactor this code to run earlier to
get the bitmap built. If we take Peff's idea and put the bitmap data
into a new stream rather than the pack-*.idx file we can produce the
bitmap at the same time as the fsck check, which is probably a simpler
change.

>>> We could have one leaf bitmap per pack to mark all leaves where
>>> we'll need to traverse outside the pack. Commit leaves are the best as
>>> we can potentially reuse commit bitmaps from other packs. Tree leaves
>>> will be followed in the normal/slow way.
>>
>> Yes, Colby proposed the same idea.
>>
>> We cannot make a "leaf bitmap per pack". The leaf SHA-1s are not in
>> the pack and therefore cannot have a bit assigned to them.
>
> We could mark all objects _in_ the pack that lead to an external
> object. That's what I meant by leaves. We need to parse the leaves to
> find out actual SHA-1s that are outside the pack.

OK, yes, I was being pretty stupid. Of course we could mark the
objects _in_ the pack as leaves and parse the leaves when we need to
find the external pointers.

> Or we could go with
> your approach below too.

I actually think my approach may be better. The root tree of a leaf
commit would need to be scanned every time to identify trees that are
reachable from this leaf commit, but are not reachable in the ancestry
of the leaf's parents. This turns out to be rather expensive to
compute every time a server or an fsck algorithm considers the partial
pack. Its also somewhat uncommon for such an object to exist, it has
to happen by an unrelated side branch introducing the same object and
the creator of the pack seeing that object already exist and not
including it in the pack.

Defining the pack's "edge" as a list of SHA-1s not in this pack but
known to be required allows us to compute that leaf root tree
reachability once, and never consider parsing it again. Which saves
servers that host frequently accessed Git repositories but aren't
repacking all of the time. (FWIW we repack frequently, I hear GitHub
does too, because a fully repacked repository serves clients better
than a partially packed one.)

>> We could
>> add a new section that listed the unique leaf SHA-1s in their own
>> private table, and then assigned per bitmap a leaf bitmap that set to
>> 1 for any leaf object that is outside of the pack.
>
>> One of the problems we have seen with these non-closed packs is they
>> waste an incredible amount of disk. As an example, do a `git fetch`
>> from Linus tree when you are more than a few weeks behind. You will
>> get back more than 100 objects, so the thin pack will be saved and
>> completed with additional base objects. That thin pack will go from a
>> few MiBs to more than 40 MiB of data on disk, thanks to the redundant
>> base objects being appended to the end of the pack. For most uses
>> these packs are best eliminated and replaced with a new complete
>> closure pack. The redundant base objects disappear, and Git stops
>> wasting a huge amount of disk.
>
> That's probably a different problem. I appreciate disk savings but I
> would not want to wait a few more minutes for repack on every
> git-fetch. But if this bitmap thing makes repack much faster than
> currently, repacking after every git-fetch may become practical.

I know the "Counting objects" phase of a repack is very expensive, but
so too is the time required to do the IO in and out of every object in
the repository. Spinning disks only transfer data so fast. Assuming
the drive can move 50 MiB/s each way, a 500 MiB repository will take
10 seconds just to write back out the new pack. You aren't ever going
to want to wait for repacking during git-fetch.
--
To unsubscribe from this list: s

Re: Commit cache to speed up rev-list and merge

2012-09-30 Thread Nguyen Thai Ngoc Duy
On Mon, Oct 1, 2012 at 8:49 AM, Shawn Pearce  wrote:
> On Thu, Sep 27, 2012 at 7:14 PM, Nguyen Thai Ngoc Duy  
> wrote:
>> On Thu, Sep 27, 2012 at 10:51 PM, Shawn Pearce  wrote:
>>> In Linus' Linux kernel tree there are currently about 323,178 commits.
>>> If we store just the pre-parsed commit time as an int32 field this is
>>> an additional 1.2 MiB of data in the pack-*.idx file, assuming we can
>>> use additional data like pack offset position to correlate commit to
>>> the parsed int. If we stored parent pointers in a similar way you
>>> probably need at least 3.6 MiB of additional disk space on the index.
>>> For example, use 12 bytes for each commit to store enough of the
>>> parsed commit time to sort commits, and up to 2 parent pointers per
>>> commit with a reserved magic value for octopus merges to mean the
>>> commit itself has to be parsed to get the graph structure correct.
>>
>> This is much better than my naive approach (storing sha-1 and
>> timestamps). We could use less space by storing parent pointer of
>> non-merge commits only. Merge commits linux-2.6 is 6% the number of
>> commits. git.git has higher percentage, 21%. I bet many projects do
>> not merge as much and the number of merge commits is less than 5%.
>
> Some projects merge quite often. Android's frameworks/base repository
> has a very large number of merges. Out of 79905 commits reachable from
> the master branch, 65.3% are merges. So actually there are more merge
> commits in the Android history than there are code commits. A cache of
> only non-merges may be worthless on such a history.

The good thing about these cache is it's configurable. Merge-preferred
projects can choose to cache the first two parents. Non-merge projects
can choose to cache just the first parent. We don't need a fixed
format for both.
-- 
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: Commit cache to speed up rev-list and merge

2012-09-30 Thread Shawn Pearce
On Thu, Sep 27, 2012 at 7:14 PM, Nguyen Thai Ngoc Duy  wrote:
> On Thu, Sep 27, 2012 at 10:51 PM, Shawn Pearce  wrote:
>> In Linus' Linux kernel tree there are currently about 323,178 commits.
>> If we store just the pre-parsed commit time as an int32 field this is
>> an additional 1.2 MiB of data in the pack-*.idx file, assuming we can
>> use additional data like pack offset position to correlate commit to
>> the parsed int. If we stored parent pointers in a similar way you
>> probably need at least 3.6 MiB of additional disk space on the index.
>> For example, use 12 bytes for each commit to store enough of the
>> parsed commit time to sort commits, and up to 2 parent pointers per
>> commit with a reserved magic value for octopus merges to mean the
>> commit itself has to be parsed to get the graph structure correct.
>
> This is much better than my naive approach (storing sha-1 and
> timestamps). We could use less space by storing parent pointer of
> non-merge commits only. Merge commits linux-2.6 is 6% the number of
> commits. git.git has higher percentage, 21%. I bet many projects do
> not merge as much and the number of merge commits is less than 5%.

Some projects merge quite often. Android's frameworks/base repository
has a very large number of merges. Out of 79905 commits reachable from
the master branch, 65.3% are merges. So actually there are more merge
commits in the Android history than there are code commits. A cache of
only non-merges may be worthless on such a history.
--
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 smart-http do not authent to allow git ls-remote to be called anonymously

2012-09-30 Thread Jeff King
On Sun, Sep 30, 2012 at 10:35:35PM +0800, 乙酸鋰 wrote:

> I use smart-http on Apache.
> If nothing to be pushed / pulled, I do not want password to be
> supplied. And allow git ls-remote to run without password
> 
> *.git/info/refs?service=git-upload-pack
> *.git/info/refs?service=git-receive-pack
> 
> I only need authentication on
> 
> *.git/git-upload-pack
> *.git/git-receive-pack
> 
> /etc/apache/httpd.conf
> 
> 
> AuthType Basic
> AuthName "staff only"
> AuthUserFile /etc/apache/apache.pwd
> Require valid-user
> 
> 
> However this does not work. It does not ask for password at all.

What is "it" in the final sentence? Does the server not tell the git
client that authorization is required, and actually serve the request?
If so, then that is a bug in your apache config.

Or is it that the server tells git that it needs authorization, but git
does not prompt, and instead just fails with "Authentication failed". In
that case, the issue is that you need a newer git client. Traditionally
the client expected to handle authentication during the initial
"info/refs" request. I added support for handling authentication during
later requests in commit b81401c, which is in git v1.7.11.7 and
v1.7.12.1.

You should reconsider whether this is what you really want, though. With
the configuration you showed, anyone will be able to get a list of all
refs and their sha1s. So they would know all your branch names, and they
could even potentially find out what's in your branches by making
offline guesses and comparing them to your branch sha1s (the feasibility
of this would depend on exactly what you're storing).

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


Re: Using bitmaps to accelerate fetch and clone

2012-09-30 Thread Shawn Pearce
On Fri, Sep 28, 2012 at 5:00 AM, Nguyen Thai Ngoc Duy  wrote:
> On Thu, Sep 27, 2012 at 7:47 AM, Shawn Pearce  wrote:
>> * https://git.eclipse.org/r/7939
>>
>>   Defines the new E003 index format and the bit set
>>   implementation logic.
>
> Quote from the patch's message:
>
> "Currently, the new index format can only be used with pack files that
> contain a complete closure of the object graph e.g. the result of a
> garbage collection."
>
> You mentioned this before in your idea mail a while back. I wonder if
> it's worth storing bitmaps for all packs, not just the self contained
> ones.

Colby and I started talking about this late last week too. It seems
feasible, but does add a bit more complexity to the algorithm used
when enumerating.

> We could have one leaf bitmap per pack to mark all leaves where
> we'll need to traverse outside the pack. Commit leaves are the best as
> we can potentially reuse commit bitmaps from other packs. Tree leaves
> will be followed in the normal/slow way.

Yes, Colby proposed the same idea.

We cannot make a "leaf bitmap per pack". The leaf SHA-1s are not in
the pack and therefore cannot have a bit assigned to them. We could
add a new section that listed the unique leaf SHA-1s in their own
private table, and then assigned per bitmap a leaf bitmap that set to
1 for any leaf object that is outside of the pack. This would probably
take up the least amount of disk space, vs. storing the list of leaf
SHA-1s after each bitmap. If a pack has only 1 bitmap (e.g. it is a
small chunk of recent history) there is really no difference in disk
usage. If the pack has 2 or 3 commit bitmaps along a string of
approximately 300 commits, you will have an identical leaf set for
each of those bitmaps so using a single leaf SHA-1 table would support
reusing the redundant leaf pointers.

One of the problems we have seen with these non-closed packs is they
waste an incredible amount of disk. As an example, do a `git fetch`
from Linus tree when you are more than a few weeks behind. You will
get back more than 100 objects, so the thin pack will be saved and
completed with additional base objects. That thin pack will go from a
few MiBs to more than 40 MiB of data on disk, thanks to the redundant
base objects being appended to the end of the pack. For most uses
these packs are best eliminated and replaced with a new complete
closure pack. The redundant base objects disappear, and Git stops
wasting a huge amount of disk.

> For connectivity check, fewer trees/commits to deflate/parse means
> less time. And connectivity check is done on every git-fetch (I
> suspect the other end of a push also has the same check). It's not
> unusual for me to fetch some repos once every few months so these
> incomplete packs could be quite big and it'll take some time for gc
> --auto to kick in (of course we could adjust gc --auto to start based
> on the number of non-bitmapped objects, in additional to number of
> packs).

Yes, of course.
--
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 smart-http do not authent to allow git ls-remote to be called anonymously

2012-09-30 Thread Shawn Pearce
On Sun, Sep 30, 2012 at 7:35 AM, 乙酸鋰  wrote:
> I use smart-http on Apache.
> If nothing to be pushed / pulled, I do not want password to be
> supplied. And allow git ls-remote to run without password
>
> *.git/info/refs?service=git-upload-pack
> *.git/info/refs?service=git-receive-pack
>
> I only need authentication on
>
> *.git/git-upload-pack
> *.git/git-receive-pack
>
> /etc/apache/httpd.conf
>
> 
> AuthType Basic
> AuthName "staff only"
> AuthUserFile /etc/apache/apache.pwd
> Require valid-user
> 
>
> However this does not work. It does not ask for password at all.

This sounds like a bug in your Apache configuration. I would verify it
prompts for a password as expected before worrying about the Git
client:

  curl -v http://localhost/git/blah/git-upload-pack

should fail with a 401 requesting access to "staff only". Once this is
working, git will present authorization as necessary during the
/git-upload-pack|git-receive-pack calls.
--
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] submodule add: Fail when .git/modules/ already exists unless forced

2012-09-30 Thread Junio C Hamano
Jens Lehmann  writes:

>> Good point! I will add a more detailed error message (including
>> the url of the default remote which is configured for the already
>> present submodule repo) and teach --force to skip the test and
>> resurrect that submodule repo.
>
> The message when "git submodule add" finds .git/modules/ is:
>
> A git directory for '' is found locally with remote(s):
>   origin  >
> If you want to reuse this local git directory instead of cloning again from
>   
> use the '--force' option. If the local git directory is not the correct repo
> or you are unsure what this means choose another name with the '--name' 
> option.
>
> When run with the --force option the following message is printed:
>
> Reactivating local git directory for submodule ''.

Thanks, will re-queue.

The approach "submodule rm" takes when removing a project is to
treat the removed submodule as not necessary for the current commit
in the superproject, but it is considered necessary elsewhere in the
history of the superproject, and that is why we stash away the
repository in $GIT_DIR/modules of the superproject.

We may however want to think about another mode of user error where
the user runs "submodule add $path" for a wrong repository, realizes
the mistake _before_ making any commit and try to repoint the $path
to a correct repository.  The behaviour of "submodule add" in this
patch, and the behaviour of existing "submodule rm", assumes that
the user is not stupid and won't make such a mistake, but to recover,
the user may need a way to really nuke the submodule repository that
was added by the earlier misteake (which is not needed anywhere in
the history of the superproject) and $GIT_DIR/module/$name really
replaced with the updated one.

I don't know how important to support a recovery procedure from such
mistakes, though.
--
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


mailinfo: don't require "text" mime type for attachments

2012-09-30 Thread Linus Torvalds

Currently "git am" does insane things if the mbox it is given contains 
attachments with a MIME type that aren't "text/*".

In particular, it will still decode them, and pass them "one line at a 
time" to the mail body filter, but because it has determined that they 
aren't text (without actually looking at the contents, just at the mime 
type) the "line" will be the encoding line (eg 'base64') rather than a 
line of *content*.

Which then will cause the text filtering to fail, because we won't 
correctly notice when the attachment text switches from the commit message 
to the actual patch. Resulting in a patch failure, even if patch may be a 
perfectly well-formed attachment, it's just that the message type may be 
(for example) "application/octet-stream" instead of "text/plain".

Just remove all the bogus games with the message_type. The only difference 
that code creates is how the data is passed to the filter function 
(chunked per-pred-code line or per post-decode line), and that difference 
is *wrong*, since chunking things per pre-decode line can never be a 
sensible operation, and cannot possibly matter for binary data anyway.

This code goes all the way back to March of 2007, in commit 87ab79923463 
("builtin-mailinfo.c infrastrcture changes"), and apparently Don used to 
pass random mbox contents to git. However, the pre-decode vs post-decode 
logic really shouldn't matter even for that case, and more importantly, "I 
fed git am crap" is not a valid reason to break *real* patch attachments.

If somebody really cares, and determines that some attachment is binary 
data (by looking at the data, not the MIME-type), the whole attachment 
should be dismissed, rather than fed in random-sized chunks to 
"handle_filter()".

Signed-off-by: Linus Torvalds 
Cc: Don Zickus 
---
 builtin/mailinfo.c | 11 ---
 1 file changed, 11 deletions(-)

diff --git a/builtin/mailinfo.c b/builtin/mailinfo.c
index 2b3f4d955eaa..da231400b327 100644
--- a/builtin/mailinfo.c
+++ b/builtin/mailinfo.c
@@ -19,9 +19,6 @@ static struct strbuf email = STRBUF_INIT;
 static enum  {
TE_DONTCARE, TE_QP, TE_BASE64
 } transfer_encoding;
-static enum  {
-   TYPE_TEXT, TYPE_OTHER
-} message_type;
 
 static struct strbuf charset = STRBUF_INIT;
 static int patch_lines;
@@ -184,8 +181,6 @@ static void handle_content_type(struct strbuf *line)
struct strbuf *boundary = xmalloc(sizeof(struct strbuf));
strbuf_init(boundary, line->len);
 
-   if (!strcasestr(line->buf, "text/"))
-message_type = TYPE_OTHER;
if (slurp_attr(line->buf, "boundary=", boundary)) {
strbuf_insert(boundary, 0, "--", 2);
if (++content_top > &content[MAX_BOUNDARIES]) {
@@ -657,7 +652,6 @@ again:
/* set some defaults */
transfer_encoding = TE_DONTCARE;
strbuf_reset(&charset);
-   message_type = TYPE_TEXT;
 
/* slurp in this section's info */
while (read_one_header_line(&line, fin))
@@ -871,11 +865,6 @@ static void handle_body(void)
strbuf_insert(&line, 0, prev.buf, prev.len);
strbuf_reset(&prev);
 
-   /* binary data most likely doesn't have newlines */
-   if (message_type != TYPE_TEXT) {
-   handle_filter(&line);
-   break;
-   }
/*
 * This is a decoded line that may contain
 * multiple new lines.  Pass only one chunk
--
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/2] submodule add: Fail when .git/modules/ already exists unless forced

2012-09-30 Thread Jens Lehmann
When adding a new submodule it can happen that .git/modules/ already
contains a submodule repo, e.g. when a submodule is removed from the work
tree and another submodule is added at the same path. But then the work
tree of the submodule will be populated using the existing repository and
not the one the user provided, which results in an incorrect work tree. On
the other hand the user might reactivate a submodule removed earlier, then
reusing that .git directory is the Right Thing to do.

As git can't decide what is the case, error out and tell the user she
should use either use a different name for the submodule with the "--name"
option or can reuse the .git directory for the newly added submodule by
providing the --force option (which only makes sense when the upstream
matches, so the error message lists all remotes of .git/modules/).

In one test in t7406 the --force option had to be added to "git submodule
add", as that test re-adds a formerly removed submodule.

Reported-by: Jonathan Johnson 
Signed-off-by: Jens Lehmann 
---

Am 30.09.2012 21:19, schrieb Jens Lehmann:
> Am 30.09.2012 06:47, schrieb Junio C Hamano:
>> I think failing with a better error message is a good idea. It
>> should suggest to either resurrect the submodule that is stashed
>> away in "$GIT_DIR/modules/$name" if it indeed is the same, or to
>> give it a different name (perhaps "kernel" used to be pointing at
>> the Linux kernel history, then the user is replacing it with a
>> totally different implementation that is really from different
>> origin and do not share any history, perhaps BSD).  In such a case,
>> the user may want to pick bsd-kernel or something as its name, to
>> differentiate it.
> 
> Good point! I will add a more detailed error message (including
> the url of the default remote which is configured for the already
> present submodule repo) and teach --force to skip the test and
> resurrect that submodule repo.

The message when "git submodule add" finds .git/modules/ is:

A git directory for '' is found locally with remote(s):
  origin>
If you want to reuse this local git directory instead of cloning again from
  
use the '--force' option. If the local git directory is not the correct repo
or you are unsure what this means choose another name with the '--name' option.

When run with the --force option the following message is printed:

Reactivating local git directory for submodule ''.


 git-submodule.sh| 15 ++-
 t/t7400-submodule-basic.sh  | 30 ++
 t/t7406-submodule-update.sh |  2 +-
 3 files changed, 45 insertions(+), 2 deletions(-)

diff --git a/git-submodule.sh b/git-submodule.sh
index 22febb1..e8112c8 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -359,7 +359,20 @@ Use -f if you really want to add it." >&2
fi

else
-
+   if test -d ".git/modules/$sm_name"
+   then
+   if test -z "$force"
+   then
+   echo >&2 "$(eval_gettext "A git directory for 
'\$sm_name' is found locally with remote(s):")"
+   GIT_DIR=".git/modules/$sm_name" GIT_WORK_TREE=. 
git remote -v | grep '(fetch)' | sed -e s,^,"  ", -e s,' (fetch)',, >&2
+   echo >&2 "$(eval_gettext "If you want to reuse 
this local git directory instead of cloning again from")"
+   echo >&2 "  $realrepo"
+   echo >&2 "$(eval_gettext "use the '--force' 
option. If the local git directory is not the correct repo")"
+   die "$(eval_gettext "or you are unsure what 
this means choose another name with the '--name' option.")"
+   else
+   echo "$(eval_gettext "Reactivating local git 
directory for submodule '\$sm_name'.")"
+   fi
+   fi
module_clone "$sm_path" "$sm_name" "$realrepo" "$reference" || 
exit
(
clear_local_git_env
diff --git a/t/t7400-submodule-basic.sh b/t/t7400-submodule-basic.sh
index 78bf739..f1a94f7 100755
--- a/t/t7400-submodule-basic.sh
+++ b/t/t7400-submodule-basic.sh
@@ -726,4 +726,34 @@ test_expect_success 'submodule add --name allows to 
replace a submodule with ano
)
 '

+test_expect_success 'submodule add with an existing name fails unless forced' '
+   (
+   cd addtest2 &&
+   rm -rf repo &&
+   git rm repo &&
+   test_must_fail git submodule add -q --name repo_new 
"$submodurl/repo.git" repo &&
+   test ! -d repo &&
+   echo "repo" >expect &&
+   git config -f .gitmodules submodule.repo_new.path >actual &&
+   test_cmp expect actual&&
+   echo "$submodurl/bare.git" >expect &&
+   git config -f .gitmodules submodule.repo_new.url >actual &&
+   test_

Re: Merging/joining two repos (repo2 should be a subdirectory of repo1)

2012-09-30 Thread David Aguilar
On Sun, Sep 30, 2012 at 8:32 AM, Dirk Süsserott  wrote:
> Am 30.09.2012 17:24 schrieb Tomas Carnecky:
>> On Sun, 30 Sep 2012 17:17:53 +0200, Dirk SÃŒsserott  
>> wrote:
>>> Hi!
>>>
>>> I have repo1 with ~4 years of history and another repo2 with ~1 year of
>>> history, both of which I don't want to loose. Now I want to join them so
>>> that repo2 becomes a subdirectory whithin repo1, including all the
>>> history of repo2.
>>>
>>> A simple git-merge won't do because both repos have some same files (at
>>> least e.g. .gitignore) in their root directories. Of course I could
>>> resolve the conflicts, but I don't want that.
>>>
>>> My naive approach is "move everything in $repo2 one directory below" and
>>> then "merge $repo2 into $repo1". Actually I wouldn' call that a "merge"
>>> but an "import".
>>>
>>> I know of "git filter-branch --subdirectory-filter foodir" but that's
>>> just the opposite of what I need.
>>>
>>> Is there a nifty trick to get this? Or will I have to do "git
>>> filter-branch --tree-filter 'mkdir subdir && git mv * subdir' --all" on
>>> $repo2 and then "git merge $repo2" in $repo1?
>>
>> http://www.kernel.org/pub/software/scm/git/docs/howto/using-merge-subtree.html
>>
>>
>
> Wow! Thanks for that quick and *very* helpful answer! :-)

Hi Dirk,

You should also take a look at contrib/subtree/ in the git source tree.

"git subtree" does pretty much exactly what you're looking to do,
and it is a bit more user-friendly than the plumbing commands.

https://github.com/git/git/blob/master/contrib/subtree/git-subtree.txt
-- 
David
--
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] gitk: refresh the index before running diff-files

2012-09-30 Thread Jonathan Nieder
Hi Jeff,

Jeff King wrote:
> On Sun, Sep 30, 2012 at 10:05:27AM +1000, Paul Mackerras wrote:

>> Unfortunately this will wait for the git update-index command to
>> complete, making the GUI unresponsive while it executes, and that can
>> take minutes on a large repository (e.g. the linux kernel) on a
>> machine with a slow disk and a cold disk cache.  We will need to make
>> the git update-index execute asynchronously.
>
> Good point. We're getting out of my very limited tcl cargo-culting
> skills now, so I'll let somebody more clueful do that fix.

You might find the following patch and discussion entertaining:

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

Not my itch, but it was fun to write back then. ;-)

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


[PATCH] Remove the hard coded length limit on variable names in config files

2012-09-30 Thread Ben Walton
Previously while reading the variable names in config files, there was
a 256 character limit with at most 128 of those characters being used
by the section header portion of the variable name.  This limitation
was only enforced while reading the config files.  It was possible to
write a config file that was not subsequently readable.

Instead of enforcing this limitation for both reading and writing,
remove it entirely by changing the var member of the config_file
struct to a strbuf instead of a fixed length buffer.  Update all of
the parsing functions in config.c to use the strbuf instead of the
static buffer.

The parsing functions that returned the base length of the variable
name now return simply 0 for success and -1 for failure.  The base
length information is obtained through the strbuf's len member.

We now send the buf member of the strbuf to external callback
functions to preserve the external api.  None of the external callers
rely on the old size limitation for sizing their own buffers so
removing the limit should have no externally visible effect.

Signed-off-by: Ben Walton 
---
 config.c |   59 +--
 1 file changed, 29 insertions(+), 30 deletions(-)

diff --git a/config.c b/config.c
index 08e47e2..24fb2d2 100644
--- a/config.c
+++ b/config.c
@@ -10,8 +10,6 @@
 #include "strbuf.h"
 #include "quote.h"
 
-#define MAXNAME (256)
-
 typedef struct config_file {
struct config_file *prev;
FILE *f;
@@ -19,7 +17,7 @@ typedef struct config_file {
int linenr;
int eof;
struct strbuf value;
-   char var[MAXNAME];
+   struct strbuf var;
 } config_file;
 
 static config_file *cf;
@@ -260,7 +258,7 @@ static inline int iskeychar(int c)
return isalnum(c) || c == '-';
 }
 
-static int get_value(config_fn_t fn, void *data, char *name, unsigned int len)
+static int get_value(config_fn_t fn, void *data, struct strbuf *name)
 {
int c;
char *value;
@@ -272,11 +270,9 @@ static int get_value(config_fn_t fn, void *data, char 
*name, unsigned int len)
break;
if (!iskeychar(c))
break;
-   name[len++] = tolower(c);
-   if (len >= MAXNAME)
-   return -1;
+   strbuf_addch(name, tolower(c));
}
-   name[len] = 0;
+
while (c == ' ' || c == '\t')
c = get_next_char();
 
@@ -288,10 +284,10 @@ static int get_value(config_fn_t fn, void *data, char 
*name, unsigned int len)
if (!value)
return -1;
}
-   return fn(name, value, data);
+   return fn(name->buf, value, data);
 }
 
-static int get_extended_base_var(char *name, int baselen, int c)
+static int get_extended_base_var(struct strbuf *name, int c)
 {
do {
if (c == '\n')
@@ -302,7 +298,7 @@ static int get_extended_base_var(char *name, int baselen, 
int c)
/* We require the format to be '[base "extension"]' */
if (c != '"')
return -1;
-   name[baselen++] = '.';
+   strbuf_addch(name, '.');
 
for (;;) {
int c = get_next_char();
@@ -315,37 +311,31 @@ static int get_extended_base_var(char *name, int baselen, 
int c)
if (c == '\n')
goto error_incomplete_line;
}
-   name[baselen++] = c;
-   if (baselen > MAXNAME / 2)
-   return -1;
+   strbuf_addch(name, c);
}
 
/* Final ']' */
if (get_next_char() != ']')
return -1;
-   return baselen;
+   return 0;
 error_incomplete_line:
cf->linenr--;
return -1;
 }
 
-static int get_base_var(char *name)
+static int get_base_var(struct strbuf *name)
 {
-   int baselen = 0;
-
for (;;) {
int c = get_next_char();
if (cf->eof)
return -1;
if (c == ']')
-   return baselen;
+   return 0;
if (isspace(c))
-   return get_extended_base_var(name, baselen, c);
+   return get_extended_base_var(name, c);
if (!iskeychar(c) && c != '.')
return -1;
-   if (baselen > MAXNAME / 2)
-   return -1;
-   name[baselen++] = tolower(c);
+   strbuf_addch(name, tolower(c));
}
 }
 
@@ -353,7 +343,7 @@ static int git_parse_file(config_fn_t fn, void *data)
 {
int comment = 0;
int baselen = 0;
-   char *var = cf->var;
+   struct strbuf *var = &cf->var;
 
/* U+FEFF Byte Order Mark in UTF8 */
static const unsigned char *utf8_bom = (unsigned char *) "\xef\xbb\xbf";
@@ -389,17 +379,24 @@ static int git_parse_file(config_fn_t fn, void *data)
c

Re: [PATCH 0/2] Let "git submodule add" fail when .git/modules/ already exists

2012-09-30 Thread Jens Lehmann
Am 30.09.2012 06:47, schrieb Junio C Hamano:
> Jens Lehmann  writes:
> 
>>> The only long term solution I can think of is to use some kind of UUID for
>>> the name, so that the names of newly added submodules won't have a chance
>>> to clash anymore. For the short term aborting "git submodule add" when a
>>> submodule of that name already exists in .git/modules of the superproject
>>> together with the ability to provide a custom name might at least solve
>>> the local clashes.
> 
> That assumes that the addition of the submodule for the second time
> is to add a completely different submodule at the same location and
> is done on purpose, but is that a sensible assumption?
> 
> If a superproject that is about an embedded appliance used to have a
> submodule A bound at its path "kernel", but for some reason stopped
> shipping with "kernel" and then later reintroduced the directory
> "kernel" bound to some submodule B, my gut feeling is that it is
> just as likely (if not more likely) that A and B are indeed the same
> submodule (i.e. it shares the same history) as they are totally
> unrelated.
> 
> Could it be that it is a user error combined with the immaturity of
> "git submodule" tool that does not yet support "it used to be here,
> but it disappears for a while and then it reappears in the history
> of the superproject" very well that caused the user to manually add
> a "new" submodule which in fact is the same submodule at the same
> path?
> 
> I think failing with a better error message is a good idea. It
> should suggest to either resurrect the submodule that is stashed
> away in "$GIT_DIR/modules/$name" if it indeed is the same, or to
> give it a different name (perhaps "kernel" used to be pointing at
> the Linux kernel history, then the user is replacing it with a
> totally different implementation that is really from different
> origin and do not share any history, perhaps BSD).  In such a case,
> the user may want to pick bsd-kernel or something as its name, to
> differentiate it.

Good point! I will add a more detailed error message (including
the url of the default remote which is configured for the already
present submodule repo) and teach --force to skip the test and
resurrect that submodule repo.

>> Using some kind of UUID can easily be added in a subsequent patch,...
> 
> I would suggest thinking really long and hard before saying UUID.

Absolutely.

> It is an easy cop-out to ensure uniqueness, but risks to allow two
> people (or one person at two different time) to give two unrelated
> names to a single thing that actually is the same.

I'm not too worried about that (even though it would be good for
the disk footprint). And I couldn't come up with a better way to
solve the problem we currently have when the same name is used
for two different submodule repos.

> A better alternative might be to use the commit object name at the
> root of the history of the submodule, which would catch the simplest
> and most common case of the mistake, I would think.

This won't work well e.g. when one uses a fork of another repo,
that will contain different commits while still having the same
root commit. I was also thinking about hashing the URL, but that
will break when the user reconfigures the URL to somewhere else.
After playing with some ideas I couldn't find a way to let the
submodule's repo provide sufficient uniqueness.

I'd say for now we go with the detection of name clashes and let
the user choose if he wants to resurrect that submodule repo or
if he wants to choose another name. But if we notice further down
the road that collisions are a problem in real life, we can think
again if UUIDs - or something else - might be a solution.
--
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 report, v1.7.12.1 -- Documentation/git-bundle.xml:130: parser error

2012-09-30 Thread Hugh Esco
Your are correct.  That is apparently the issue:

git@pbx:~$ asciidoc --version
asciidoc 8.2.7

This server is still running Debian Lenny.
Not sure when I will be able to rebuild it.  

My apologies for spamming your bug reporting list 
with all of that.  I now have source installs of git 
and gitolite installed and presumably working on this 
server and promise not to bother you further with 
that issue.

-- Hugh Esco

Date: Sun, 30 Sep 2012 14:02:09 -0400
From: Jeff King 
To: Junio C Hamano 
Cc: he...@yourmessagedelivered.com, git@vger.kernel.org
Subject: Re: bug report, v1.7.12.1 -- Documentation/git-bundle.xml:130:
 parser error

On Sun, Sep 30, 2012 at 12:34:18AM -0700, Junio C Hamano wrote:

> I suspect that a tilde inside literal `` environment is mishandled
> in your versions of the documentation toolchain.  Either you would
> need to upgrade some tool in the toolchain, or we would need patches
> to the source that would look like:
> 
>   -such as `master~1` cannot be packaged,...
> +such as `master{tilde}1` cannot be packaged,...
> 
> to work around this problem if the version of the problematic tool
> you are using is widespread.

That would not work, as commit 6cf378f turned off no-inline-literal, and
modern asciidoc would not expand that "{tilde}" at all. My guess is that
Hugh is using a version of asciidoc older than 8.4.1, which was the
first version to understand inline literals.

This came up already once before:

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

where the culprit was older third-party RPMs on RHEL5. It can be worked
around by upgrading asciidoc, or using "make quick-install-doc" to pull
the pre-built versions.

-Peff

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


Re: [PATCH] Remove the hard coded length limit on variable names in config files

2012-09-30 Thread Ben Walton
Hi Michael,

> The patch doesn't apply to the current master; it appears to have been
> built against master 883a2a3504 (2012-02-23) or older.  It will have to
> be rebased to the current master.

Junio had asked that it be based on maint so that's what I (thought
I?) did.  I'm happy to redo it against master if that's better though.

> The preferred format for multiline comments in the git project is
>
> /*
>  * Truncate the var name back to the section header prior to
>  * grabbing the suffix part of the name and the value.
>  */

Oops; Will fix.

> In the old code, get_base_var() read the string into var and returned
> var's length (or -1 on error).  The fact that the length of var was
> first "reset" to zero is somewhat implicit in the fact that no length
> parameter is being passed to get_base_var().
>
> But in the new version, get_base_var() is passed a strbuf.  Often,
> operations with strbufs append to the strbuf, and this is what I first
> assumed.  It took me a while to realize that get_base_var() calls
> strbuf_reset() before getting to work.  Moreover, get_base_var() still
> returns the length of what it found, which is redundant with a strbuf
> and therefore unexpected.  So when the return value of get_base_var() is
> stored into baselen, it is not really obvious that it is the string's
> length.

Ok, that's a fair criticism.  When I was creating the patch, I thought
that placing
the strbuf_reset in get_base_var() seemed nicer as it matched the
baselen = 0 which
effectively reset the old character array.  Your point is well taken
though and I think
it makes sense to switch things around the way you've suggested.

> Finally, I realize that the MAXNAME constant was not exported and I
> can't find the old length limits documented anywhere, but I nevertheless
> worry a little bit that one of the users of the config API has a
> built-in assumption that names can never be longer than 256 characters
> (for example, a config_fn_t function might try to store the name into a
> fixed-length buffer).  Hopefully such code would never have been written
> or accepted, but...?  If you have thought about this or audited the
> callers, please mention that in your commit message.

I did look through the code to see if anything was relying on fixed
size buffers and I didn't see anything.  I'll update the commit
message with this info too.

I'll send a modified patch shortly.

Thanks for the review!
-Ben
-- 
---
Take the risk of thinking for yourself.  Much more happiness,
truth, beauty and wisdom will come to you that way.

-Christopher Hitchens
---
--
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 report, v1.7.12.1 -- Documentation/git-bundle.xml:130: parser error

2012-09-30 Thread Jeff King
On Sun, Sep 30, 2012 at 12:34:18AM -0700, Junio C Hamano wrote:

> I suspect that a tilde inside literal `` environment is mishandled
> in your versions of the documentation toolchain.  Either you would
> need to upgrade some tool in the toolchain, or we would need patches
> to the source that would look like:
> 
>   -such as `master~1` cannot be packaged,...
> +such as `master{tilde}1` cannot be packaged,...
> 
> to work around this problem if the version of the problematic tool
> you are using is widespread.

That would not work, as commit 6cf378f turned off no-inline-literal, and
modern asciidoc would not expand that "{tilde}" at all. My guess is that
Hugh is using a version of asciidoc older than 8.4.1, which was the
first version to understand inline literals.

This came up already once before:

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

where the culprit was older third-party RPMs on RHEL5. It can be worked
around by upgrading asciidoc, or using "make quick-install-doc" to pull
the pre-built versions.

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


Re: Merging/joining two repos (repo2 should be a subdirectory of repo1)

2012-09-30 Thread Dirk Süsserott
Am 30.09.2012 17:34 schrieb Sascha Cunz:
>
> You might want to have a look at the subtree merge strategy (see man
> git-merge). Maybe that will already do what you want to.
> 
>  
> 
> Sascha
> 

Thank you as well. I wasn't aware of that option (or didn't figure out
what it actually does).

Dirk
--
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: Merging/joining two repos (repo2 should be a subdirectory of repo1)

2012-09-30 Thread Dirk Süsserott
Am 30.09.2012 17:24 schrieb Tomas Carnecky:
> On Sun, 30 Sep 2012 17:17:53 +0200, Dirk SÃŒsserott  
> wrote:
>> Hi!
>>
>> I have repo1 with ~4 years of history and another repo2 with ~1 year of
>> history, both of which I don't want to loose. Now I want to join them so
>> that repo2 becomes a subdirectory whithin repo1, including all the
>> history of repo2.
>>
>> A simple git-merge won't do because both repos have some same files (at
>> least e.g. .gitignore) in their root directories. Of course I could
>> resolve the conflicts, but I don't want that.
>>
>> My naive approach is "move everything in $repo2 one directory below" and
>> then "merge $repo2 into $repo1". Actually I wouldn' call that a "merge"
>> but an "import".
>>
>> I know of "git filter-branch --subdirectory-filter foodir" but that's
>> just the opposite of what I need.
>>
>> Is there a nifty trick to get this? Or will I have to do "git
>> filter-branch --tree-filter 'mkdir subdir && git mv * subdir' --all" on
>> $repo2 and then "git merge $repo2" in $repo1?
> 
> http://www.kernel.org/pub/software/scm/git/docs/howto/using-merge-subtree.html
> 
> 

Wow! Thanks for that quick and *very* helpful answer! :-)
--
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


Merging/joining two repos (repo2 should be a subdirectory of repo1)

2012-09-30 Thread Dirk Süsserott
Hi!

I have repo1 with ~4 years of history and another repo2 with ~1 year of
history, both of which I don't want to loose. Now I want to join them so
that repo2 becomes a subdirectory whithin repo1, including all the
history of repo2.

A simple git-merge won't do because both repos have some same files (at
least e.g. .gitignore) in their root directories. Of course I could
resolve the conflicts, but I don't want that.

My naive approach is "move everything in $repo2 one directory below" and
then "merge $repo2 into $repo1". Actually I wouldn' call that a "merge"
but an "import".

I know of "git filter-branch --subdirectory-filter foodir" but that's
just the opposite of what I need.

Is there a nifty trick to get this? Or will I have to do "git
filter-branch --tree-filter 'mkdir subdir && git mv * subdir' --all" on
$repo2 and then "git merge $repo2" in $repo1?

Thanks in advance
Dirk

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


git smart-http do not authent to allow git ls-remote to be called anonymously

2012-09-30 Thread 乙酸鋰
Hi,

I use smart-http on Apache.
If nothing to be pushed / pulled, I do not want password to be
supplied. And allow git ls-remote to run without password

*.git/info/refs?service=git-upload-pack
*.git/info/refs?service=git-receive-pack

I only need authentication on

*.git/git-upload-pack
*.git/git-receive-pack

/etc/apache/httpd.conf


AuthType Basic
AuthName "staff only"
AuthUserFile /etc/apache/apache.pwd
Require valid-user


However this does not work. It does not ask for password at all.

I use Ubuntu 10.04, Apache 2.2.14, Git 1.7.11.3.

Directory structure: any depth (more than 1 subdir) of path from /git
to .git folders

Could you advise how to configure this? Is this a bug?

Regards,
ch3cooli
--
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


gitk: can't reload commits with new key binding

2012-09-30 Thread SZEDER Gábor
Hi,

a135f214 (gitk: Avoid Meta1-F5, 2012-04-07) changed the key binding
for reloading commits to shift-F5, but this new key binding doesn't
seem to be working here, because it doesn't call reloadcommits().
Choosing the reload menu item works.  Shift-F5 works properly in other
applications.

Any ideas?

Thanks,
Gábor

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

2012-09-30 Thread Junio C Hamano
The latest maintenance release Git v1.7.12.2 is now available 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:

277b759139ddb62c6935da37de8a483e2c234a97  git-1.7.12.2.tar.gz
5722156394c7478b2339a1d87aa894bc4d2f5d6b  git-htmldocs-1.7.12.2.tar.gz
8cf6fd255e83226b4abcdcd68dcf315c1995fd92  git-manpages-1.7.12.2.tar.gz

Also the following public repositories all have a copy of the v1.7.12.2
tag and the maint 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

Git 1.7.12.2 Release Notes
==

Fixes since v1.7.12.1
-

 * When "git am" is fed an input that has multiple "Content-type: ..."
   header, it did not grok charset= attribute correctly.

 * Even during a conflicted merge, "git blame $path" always meant to
   blame uncommitted changes to the "working tree" version; make it
   more useful by showing cleanly merged parts as coming from the other
   branch that is being merged.

 * "git blame MAKEFILE" run in a history that has "Makefile" but not
   "MAKEFILE" should say "No such file MAKEFILE in HEAD", but got
   confused on a case insensitive filesystem and failed to do so.

 * "git fetch --all", when passed "--no-tags", did not honor the
   "--no-tags" option while fetching from individual remotes (the same
   issue existed with "--tags", but combination "--all --tags" makes
   much less sense than "--all --no-tags").

 * "git log/diff/format-patch --stat" showed the "N line(s) added"
   comment in user's locale and caused careless submitters to send
   patches with such a line in them to projects whose project language
   is not their language, mildly irritating others. Localization to
   the line has been disabled for now.

 * "git log --all-match --grep=A --grep=B" ought to show commits that
   mention both A and B, but when these three options are used with
   --author or --committer, it showed commits that mention either A or
   B (or both) instead.

 * The subcommand to remove the definition of a remote in "git remote"
   was named "rm" even though all other subcommands were spelled out.
   Introduce "git remote remove" to remove confusion, and keep "rm" as
   a backward compatible synonym.

Also contains a handful of documentation updates.



Changes since v1.7.12.1 are as follows:

Dan Johnson (1):
  fetch --all: pass --tags/--no-tags through to each remote

David Gould (1):
  run-command.c: fix broken list iteration in clear_child_for_cleanup

Felipe Contreras (1):
  completion: fix shell expansion of items

Jeff King (4):
  argv-array: add pop function
  argv-array: fix bogus cast when freeing array
  fetch: use argv_array instead of hand-building arrays
  Revert "completion: fix shell expansion of items"

Jens Lehmann (1):
  submodule: use argv_array instead of hand-building arrays

Jeremy White (1):
  Documentation: describe subject more precisely

Jonathan "Duke" Leto (1):
  Improve the description of GIT_PS1_SHOWUPSTREAM

Junio C Hamano (11):
  mailinfo: strip "RE: " prefix
  blame $path: avoid getting fooled by case insensitive filesystems
  blame: allow "blame file" in the middle of a conflicted merge
  grep: teach --debug option to dump the parse tree
  log --grep/--author: honor --all-match honored for multiple --grep 
patterns
  log: document use of multiple commit limiting options
  grep.c: mark private file-scope symbols as static
  mailinfo: do not concatenate charset= attribute values from mime headers
  grep.c: make two symbols really file-scope static this time
  Start preparation for 1.7.12.2
  Git 1.7.12.2

Michael J Gruber (6):
  grep: show --debug output only once
  t7810-grep: bring log --grep tests in common form
  t7810-grep: test multiple --grep with and without --all-match
  t7810-grep: test multiple --author with --all-match
  t7810-grep: test interaction of multiple --grep and --author options
  t7810-grep: test --all-match with multiple --grep and --author options

Nguyễn Thái Ngọc Duy (3):
  remote: prefer subcommand name 'remove' to 'rm'
  doc: move rev-list option - from git-log.txt to rev-list-options.txt
  Revert diffstat back to English

Ralf Thielow (1):
  l10n: de.po: correct translation of a 'rebase' message

Stefan Naewe (1):
  ls-remote: document the '--get-url' option

Stephen Boyd (1):
  Documentation: Document signature showing options

Thynson (2):
  l10n: Unify the translation for '(un)expected'
  l10n: Improve many translation for zh_CN

--
To unsubscribe from this list: send the line "unsubscribe

bug report, v1.7.12.1 -- Documentation/gitcredentials.xml:180: parser error

2012-09-30 Thread Hugh Esco
doing a source install of git v1.7.12.1, 
on the `make all doc` step, I get:

XMLTO gitcredentials.7
xmlto: input does not validate (status 1)
/usr/local/git-git-51993a4/Documentation/gitcredentials.xml:180: parser error : 
Opening and ending tag mismatch: emphasis line 180 and literal
credential. (which applies to all cre
  ^
/usr/local/git-git-51993a4/Documentation/gitcredentials.xml:181: parser error : 
Opening and ending tag mismatch: literal line 181 and emphasis
credential.., where  matches
   ^
make[1]: *** [gitcredentials.7] Error 1
make[1]: Leaving directory `/usr/local/git-git-51993a4/Documentation'
make: *** [doc] Error 2
pbx:/usr/local/git-git-51993a4# diff Documentation/gitcore-tutorial.xml 
~hesco/gitcore-tutorial.xml 
824c824
< (notice the asterisk  character), and the first column for
---
> (notice the asterisk  character), 
> and the first column for
828c828
< All of them have non blank characters in the first column (
---
> All of them have non blank characters in the first column 
> (
1263c1263
< You will see two files, pack-.pack and 
pack-.idx,
---
> You will see two files, pack- role="strong">.pack and pack-.idx,

---
and the patch which permitted me to proceed
---

180,181c180,181
< credential. (which applies to all credentials), or
< credential.., where  matches the 
context as described
---
> credential. (which applies to all 
> credentials), or
> credential.., where  
> matches the context as described

And with the resolution of this bug, 
the `make doc all` completed without further error.  

Not sure if my version of the xml parser does not recognize 
the emphasis tag, although many of these involved overlapping 
tags and sometimes I saw tags which wrapped literally nothing 
at all.  Have no idea what that might have been about.  

-- 
Hugh Esco 
skype: hresco3_ ; 678-921-8186 x21 
http://www.CampaignFoundations.com/
Providing Application Hosting, Telephony, 
Custom Development and Consulting Services 
to Green Candidates, Green Parties and
the non profits working for a just and sustainable future.

if( $insurance->rationing() ) { $people->die(); }
if( isa_ok($self,'Troy::Davis') =~ m/^ok/) { $people->are_whole(); }

--
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 report, v1.7.12.1 -- Documentation/gitcore-tutorial.xml:824: parser error

2012-09-30 Thread Hugh Esco
doing a source install of git v1.7.12.1, 
on the `make all doc` step, I get:

XMLTO gitcore-tutorial.7
xmlto: input does not validate (status 1)
/usr/local/git-git-51993a4/Documentation/gitcore-tutorial.xml:824: parser error 
: Opening and ending tag mismatch: emphasis line 824 and literal
(notice the asterisk  character), and
^
/usr/local/git-git-51993a4/Documentation/gitcore-tutorial.xml:828: parser error 
: Opening and ending tag mismatch: literal line 828 and emphasis
All of them have non blank characters in the first column (<
   ^
/usr/local/git-git-51993a4/Documentation/gitcore-tutorial.xml:1263: parser 
error : Opening and ending tag mismatch: emphasis line 1263 and literal
ra>You will see two files, pack-.pack
   ^
/usr/local/git-git-51993a4/Documentation/gitcore-tutorial.xml:1263: parser 
error : Opening and ending tag mismatch: literal line 1263 and emphasis
teral>pack-.pack and pack-
   ^
make[1]: *** [gitcore-tutorial.7] Error 1
make[1]: Leaving directory `/usr/local/git-git-51993a4/Documentation'
make: *** [doc] Error 2

---
and the patch which permitted me to proceed
---

824c824
< (notice the asterisk  character), and the first column for
---
> (notice the asterisk  character), 
> and the first column for
828c828
< All of them have non blank characters in the first column (
---
> All of them have non blank characters in the first column 
> (
1263c1263
< You will see two files, pack-.pack and 
pack-.idx,
---
> You will see two files, pack- role="strong">.pack and pack-.idx,

-- 
Hugh Esco 
404-424-8701
YourMessageDelivered.com
Keeping Your Group in the Loop
No Matter How Large or How Small
--
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 report, v1.7.12.1 -- Documentation/git-stash.xml:116: parser error

2012-09-30 Thread Hugh Esco
doing a source install of git v1.7.12.1, 
on the `make all doc` step, I get:

XMLTO git-stash.1
xmlto: input does not validate (status 1)
/usr/local/git-git-51993a4/Documentation/git-stash.xml:116: parser error : 
Opening and ending tag mismatch: literal line 115 and simpara

  ^
/usr/local/git-git-51993a4/Documentation/git-stash.xml:117: parser error : 
Opening and ending tag mismatch: simpara line 111 and listitem

   ^
/usr/local/git-git-51993a4/Documentation/git-stash.xml:118: parser error : 
Opening and ending tag mismatch: listitem line 110 and varlistentry

   ^
/usr/local/git-git-51993a4/Documentation/git-stash.xml:211: parser error : 
Opening and ending tag mismatch: varlistentry line 106 and variablelist

   ^
/usr/local/git-git-51993a4/Documentation/git-stash.xml:212: parser error : 
Opening and ending tag mismatch: variablelist line 49 and refsect1

   ^
/usr/local/git-git-51993a4/Documentation/git-stash.xml:348: parser error : 
Opening and ending tag mismatch: refsect1 line 47 and refentry

   ^
/usr/local/git-git-51993a4/Documentation/git-stash.xml:349: parser error : 
Premature end of data in tag refentry line 3

^
make[1]: *** [git-stash.1] Error 1
make[1]: Leaving directory `/usr/local/git-git-51993a4/Documentation'
make: *** [doc] Error 2

---
and the patch which permitted me to proceed
---

115c115
< it will accept any format known to git diff 
(e.g., git stash show
---
> it will accept any format known to git diff 
> (e.g., git stash show


-- 
Hugh Esco 
skype: hresco3_ ; 678-921-8186 x21 
http://www.CampaignFoundations.com/
Providing Application Hosting, Telephony, 
Custom Development and Consulting Services 
to Green Candidates, Green Parties and
the non profits working for a just and sustainable future.

if( $insurance->rationing() ) { $people->die(); }
if( isa_ok($self,'Troy::Davis') =~ m/^ok/) { $people->are_whole(); }



--
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 report, v1.7.12.1 -- Documentation/git-rm.xml:151: element literal: validity error

2012-09-30 Thread Hugh Esco
doing a source install of git v1.7.12.1, 
on the `make all doc` step, I get:

ASCIIDOC git-rm.xml
XMLTO git-rm.1
xmlto: input does not validate (status 3)
/usr/local/git-git-51993a4/Documentation/git-rm.xml:151: element literal: 
validity error : Element emphasis is not declared in literal list of possible 
children
/usr/local/git-git-51993a4/Documentation/git-rm.xml:151: element literal: 
validity error : Element emphasis is not declared in literal list of possible 
children
Document /usr/local/git-git-51993a4/Documentation/git-rm.xml does not validate
make[1]: *** [git-rm.1] Error 3
make[1]: Leaving directory `/usr/local/git-git-51993a4/Documentation'
make: *** [doc] Error 2

---
and the patch which permitted me to proceed
---

151c151
< using git rm d* and git rm d/*, as the 
former will
---
> using git rm d* and git rm 
> d/*, as the former will


-- 
Hugh Esco 
skype: hresco3_ ; 678-921-8186 x21 
http://www.CampaignFoundations.com/
Providing Application Hosting, Telephony, 
Custom Development and Consulting Services 
to Green Candidates, Green Parties and
the non profits working for a just and sustainable future.

if( $insurance->rationing() ) { $people->die(); }
if( isa_ok($self,'Troy::Davis') =~ m/^ok/) { $people->are_whole(); }



--
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 report, v1.7.12.1 -- Documentation/git-rev-parse.xml:264: parser error

2012-09-30 Thread Hugh Esco
doing a source install of git v1.7.12.1, 
on the `make all doc` step, I get:

XMLTO git-rev-parse.1
xmlto: input does not validate (status 1)
/usr/local/git-git-51993a4/Documentation/git-rev-parse.xml:264: parser error : 
Opening and ending tag mismatch: emphasis line 264 and literal
, or [), it is tur
   ^
/usr/local/git-git-51993a4/Documentation/git-rev-parse.xml:264: parser error : 
Opening and ending tag mismatch: literal line 264 and emphasis
), it is turned into a prefix match by appending /
   ^
/usr/local/git-git-51993a4/Documentation/git-rev-parse.xml:277: parser error : 
Opening and ending tag mismatch: emphasis line 277 and literal
character (?, 
   ^
/usr/local/git-git-51993a4/Documentation/git-rev-parse.xml:278: parser error : 
Opening and ending tag mismatch: literal line 278 and emphasis
match by appending /.
^
make[1]: *** [git-rev-parse.1] Error 1
make[1]: Leaving directory `/usr/local/git-git-51993a4/Documentation'
make: *** [doc] Error 2

---
and the patch which permitted me to proceed
---

264c264
> , or [), it is turned into a prefix 
> match by appending >literal>/.
---
< , or [), it is 
turned into a prefix match by appending 
/.
277,278c277,278
> character (?, , or 
> [), it is turned into a prefix
> match by appending /.
---
< character (?, , or [), it is turned into a prefix
< match by appending /.


-- 
Hugh Esco 
skype: hresco3_ ; 678-921-8186 x21 
http://www.CampaignFoundations.com/
Providing Application Hosting, Telephony, 
Custom Development and Consulting Services 
to Green Candidates, Green Parties and
the non profits working for a just and sustainable future.

if( $insurance->rationing() ) { $people->die(); }
if( isa_ok($self,'Troy::Davis') =~ m/^ok/) { $people->are_whole(); }



--
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 8/9] longest_ancestor_length(): resolve symlinks before comparing paths

2012-09-30 Thread Junio C Hamano
Michael Haggerty  writes:

> longest_ancestor_length() relies on a textual comparison of directory
> parts to find the part of path that overlaps with one of the paths in
> prefix_list.  But this doesn't work if any of the prefixes involves a
> symbolic link, because the directories will look different even though
> they might logically refer to the same directory.  So canonicalize the
> paths listed in prefix_list using real_path_if_valid() before trying
> to find matches.

I somehow feel that this is making the logic unnecessarily
convoluted by solving the problem at a wrong level.

If longest_ancestor_length() takes a single string and a list of
candidate string prefixes, conceptually it should be usable for any
hierarchy-looking string that uses slashes as hierarchy separator
(e.g. refs that may be stored in packed-refs that you cannot expect
lstat(2) or readlink(2) to give you any sensible results).

The real problem is that the list given from the environment may
contain a path that violates that "it suffices to take the longest
string-prefix taking slashes into account" assumption in such a
generic l-a-l implementation, no?  And this patch solves it by
making l-a-l _less_ generic and forcing it to be aware of the glitch
of its caller (you can either blame clueless user who lies when
setting the GIT_CEILING_DIRECTORIES by including paths contaminated
with symlinks, or blame the calling setup_git_directory_gently_1()
function that does not resolve the symbolic links before calling
this function).

As l-a-l is only used by the "stop at the ceiling" logic, isn't it a
far simpler solution to keep the function work at the string level,
and make the caller fix its input, i.e. the value taken from the
environment variable, before calling it?  That is, grab the value of
GIT_CEILING_DIRECTORIES, split it into a list at PATH_SEP (while
rejecting any non-absolute paths), normalize the elements of that
list by resolving symbolic links, and then pass the cwd[] and the
normalized string list to l-a-l?

The resulting callsite in setup_git_directory_gently_1() would pass
cwd[] and the ceiling_dirs (which now is a string list), all of
whose elements would happen to begin with "/" (or dos drive prefix
followed by the "root" symbol), but l-a-l can be written in such a
way that it does not even require that all the input has to begin at
root, which would later make it usable with things that are not
paths (references, for example, all of which begin with "refs/" and
not "/refs/").

Hrm?
--
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 report, v1.7.12.1 -- Documentation/git-remote-helpers.xml:135: element literal: validity error

2012-09-30 Thread Hugh Esco
doing a source install of git v1.7.12.1, 
on the `make all doc` step, I get:

XMLTO git-remote-helpers.1
xmlto: input does not validate (status 3)
/usr/local/git-git-51993a4/Documentation/git-remote-helpers.xml:135: element 
literal: validity error : Element emphasis is not declared in literal list of 
possible children
/usr/local/git-git-51993a4/Documentation/git-remote-helpers.xml:144: element 
literal: validity error : Element emphasis is not declared in literal list of 
possible children
/usr/local/git-git-51993a4/Documentation/git-remote-helpers.xml:246: element 
literal: validity error : Element emphasis is not declared in literal list of 
possible children
/usr/local/git-git-51993a4/Documentation/git-remote-helpers.xml:255: element 
literal: validity error : Element emphasis is not declared in literal list of 
possible children
Document /usr/local/git-git-51993a4/Documentation/git-remote-helpers.xml does 
not validate
make[1]: *** [git-remote-helpers.1] Error 3
make[1]: Leaving directory `/usr/local/git-git-51993a4/Documentation'
make: *** [doc] Error 2

---
and the patch which permitted me to proceed
---

135c135
< refspec refs/heads/:refs/svn/origin/branches/
---
> refspec refs/heads/ role="strong">:refs/svn/origin/branches/
144c144
< there is an implied refspec :.
---
> there is an implied refspec  role="strong">:.
246c246
< refspec refs/heads/:refs/svn/origin/branches/
---
> refspec refs/heads/ role="strong">:refs/svn/origin/branches/
255c255
< there is an implied refspec :.
---
> there is an implied refspec  role="strong">:.

-- 
Hugh Esco 
404-424-8701
YourMessageDelivered.com
Keeping Your Group in the Loop
No Matter How Large or How Small
--
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 report, v1.7.12.1 -- Documentation/git-push.xml:113: element literal: validity error

2012-09-30 Thread Hugh Esco
doing a source install of git v1.7.12.1, 
on the `make all doc` step, I get:

XMLTO git-push.1
xmlto: input does not validate (status 3)
/usr/local/git-git-51993a4/Documentation/git-push.xml:113: element literal: 
validity error : Element emphasis is not declared in literal list of possible 
children
Document /usr/local/git-git-51993a4/Documentation/git-push.xml does not validate
make[1]: *** [git-push.1] Error 3
make[1]: Leaving directory `/usr/local/git-git-51993a4/Documentation'
make: *** [doc] Error 2

---
and the patch which permitted me to proceed
---

113c113
< git push --prune remote refs/heads/:refs/tmp/ would
---
> git push --prune remote refs/heads/ role="strong">:refs/tmp/ would



-- 
Hugh Esco 
skype: hresco3_ ; 678-921-8186 x21 
http://www.CampaignFoundations.com/
Providing Application Hosting, Telephony, 
Custom Development and Consulting Services 
to Green Candidates, Green Parties and
the non profits working for a just and sustainable future.

if( $insurance->rationing() ) { $people->die(); }
if( isa_ok($self,'Troy::Davis') =~ m/^ok/) { $people->are_whole(); }



--
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 report, v1.7.12.1 -- Documentation/git-grep.xml:601: element literal: validity error

2012-09-30 Thread Hugh Esco
doing a source install of git v1.7.12.1, 
on the `make all doc` step, I get:

   XMLTO git-grep.1
xmlto: input does not validate (status 3)
/usr/local/git-git-51993a4/Documentation/git-grep.xml:601: element literal: 
validity error : Element emphasis is not declared in literal list of possible 
children
/usr/local/git-git-51993a4/Documentation/git-grep.xml:601: element literal: 
validity error : Element emphasis is not declared in literal list of possible 
children
/usr/local/git-git-51993a4/Documentation/git-grep.xml:612: element literal: 
validity error : Element emphasis is not declared in literal list of possible 
children
Document /usr/local/git-git-51993a4/Documentation/git-grep.xml does not validate
make[1]: *** [git-grep.1] Error 3
make[1]: Leaving directory `/usr/local/git-git-51993a4/Documentation'
make: *** [doc] Error 2

---
and the patch which permitted me to proceed
---

601c601
> git grep time_t — *.[ch]
---
< git grep time_t — 
*.[ch]
612c612
< git grep -e #define --and \( -e MAX_PATH -e PATH_MAX \)
---
> git grep -e #define --and \( -e MAX_PATH -e 
> PATH_MAX \)

-- 
Hugh Esco 
skype: hresco3_ ; 678-921-8186 x21 
http://www.CampaignFoundations.com/
Providing Application Hosting, Telephony, 
Custom Development and Consulting Services 
to Green Candidates, Green Parties and
the non profits working for a just and sustainable future.

if( $insurance->rationing() ) { $people->die(); }
if( isa_ok($self,'Troy::Davis') =~ m/^ok/) { $people->are_whole(); }



--
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 report, v1.7.12.1 -- Documentation/git-filter-branch.xml:463: parser error

2012-09-30 Thread Hugh Esco
doing a source install of git v1.7.12.1, 
on the `make all doc` step, I get:

XMLTO git-filter-branch.1
xmlto: input does not validate (status 1)
/usr/local/git-git-51993a4/Documentation/git-filter-branch.xml:463: parser 
error : Unescaped '<' not allowed in attributes values
Clone it with git clone file
 ^
/usr/local/git-git-51993a4/Documentation/git-filter-branch.xml:463: parser 
error : attributes construct error
Clone it with git clone file
 ^
/usr/local/git-git-51993a4/Documentation/git-filter-branch.xml:463: parser 
error : Couldn't find end of Start Tag ulink line 463
Clone it with git clone file
 ^
/usr/local/git-git-51993a4/Documentation/git-filter-branch.xml:463: parser 
error : expected '>'
Clone it with git clone file
  ^
/usr/local/git-git-51993a4/Documentation/git-filter-branch.xml:463: parser 
error : expected '>'
t clone file:///path/to/repofile:///path/to/repofile:///path/to/repo
   ^
/usr/local/git-git-51993a4/Documentation/git-filter-branch.xml:468: parser 
error : Opening and ending tag mismatch: itemizedlist line 460 and simpara

  ^
/usr/local/git-git-51993a4/Documentation/git-filter-branch.xml:469: parser 
error : Opening and ending tag mismatch: refsect1 line 433 and listitem

   ^
/usr/local/git-git-51993a4/Documentation/git-filter-branch.xml:470: parser 
error : Opening and ending tag mismatch: refentry line 3 and itemizedlist

   ^
/usr/local/git-git-51993a4/Documentation/git-filter-branch.xml:471: parser 
error : Extra content at the end of the document
If you really don't want to clone it, for whatever reasons, check the
^
make[1]: *** [git-filter-branch.1] Error 1
make[1]: Leaving directory `/usr/local/git-git-51993a4/Documentation'
make: *** [doc] Error 2

---
and the patch which permitted me to proceed
---

463c463
> Clone it with git clone  url="file:///path/to/repo">file:///path/to/repo.  The clone
---
< Clone it with git clone file:///path/to/repo>.  
The clone

-- 
Hugh Esco 
skype: hresco3_ ; 678-921-8186 x21 
http://www.CampaignFoundations.com/
Providing Application Hosting, Telephony, 
Custom Development and Consulting Services 
to Green Candidates, Green Parties and
the non profits working for a just and sustainable future.

if( $insurance->rationing() ) { $people->die(); }
if( isa_ok($self,'Troy::Davis') =~ m/^ok/) { $people->are_whole(); }



--
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 report, v1.7.12.1 -- Documentation/git-bundle.xml:130: parser error

2012-09-30 Thread Junio C Hamano
Hugh Esco  writes:

> doing a source install of git v1.7.12.1, 
> on the `make all doc` step, I get:
>
> xmlto: input does not validate (status 1)
> /usr/local/git-git-51993a4/Documentation/git-bundle.xml:130: parser error : 
> Opening and ending tag mismatch: subscript line 130 and literal
> such as master1 cannot be packaged, but are 
> perfec
>  ^
> /usr/local/git-git-51993a4/Documentation/git-bundle.xml:134: parser error : 
> Opening and ending tag mismatch: literal line 134 and subscript
> specified explicitly (e.g. ^master10), or 
> implici
>^
> make[1]: *** [git-bundle.1] Error 1
> make[1]: Leaving directory `/usr/local/git-git-51993a4/Documentation'
> make: *** [doc] Error 2
>
> ---
> and the patch which permitted me to proceed
> ---
>
> 130c130
>> such as master1 cannot be 
>> packaged, but are perfectly suitable for

PLEASE STOP.

git-anything.xml files are _not_ the source files we edit, so
patches to them are not useful for us.

I suspect that a tilde inside literal `` environment is mishandled
in your versions of the documentation toolchain.  Either you would
need to upgrade some tool in the toolchain, or we would need patches
to the source that would look like:

-such as `master~1` cannot be packaged,...
+such as `master{tilde}1` cannot be packaged,...

to work around this problem if the version of the problematic tool
you are using is widespread.
--
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 report, v1.7.12.1 -- Documentation/git-fast-import.xml:732: parser error

2012-09-30 Thread Hugh Esco
doing a source install of git v1.7.12.1, 
on the `make all doc` step, I get:

XMLTO git-fast-import.1
xmlto: input does not validate (status 1)
/usr/local/git-git-51993a4/Documentation/git-fast-import.xml:732: parser error 
: Opening and ending tag mismatch: superscript line 732 and literal
The 0 suffix is necessary as fast-impor
  ^
/usr/local/git-git-51993a4/Documentation/git-fast-import.xml:734: parser error 
: Opening and ending tag mismatch: literal line 734 and superscript
m command is even read from the input.  Adding 
   ^
make[1]: *** [git-fast-import.1] Error 1
make[1]: Leaving directory `/usr/local/git-git-51993a4/Documentation'
make: *** [doc] Error 2

---
and the patch which permitted me to proceed
---

Sorry, got a bit ahead of myself and forgot to grab 
a copy I could diff against.  But in short I simply 
removed the superscript tags and that was sufficient 
to making this work.  

-- 
Hugh Esco 
skype: hresco3_ ; 678-921-8186 x21 
http://www.CampaignFoundations.com/
Providing Application Hosting, Telephony, 
Custom Development and Consulting Services 
to Green Candidates, Green Parties and
the non profits working for a just and sustainable future.

if( $insurance->rationing() ) { $people->die(); }
if( isa_ok($self,'Troy::Davis') =~ m/^ok/) { $people->are_whole(); }



--
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 report, v1.7.12.1 -- Documentation/git-config.xml:643: parser error

2012-09-30 Thread Hugh Esco
doing a source install of git v1.7.12.1, 
on the `make all doc` step, I get:

xmlto: input does not validate (status 1)
/usr/local/git-git-51993a4/Documentation/git-config.xml:643: parser error : 
Opening and ending tag mismatch: subscript line 643 and literal
ude.path is subject to tilde expansion: /$HOME, and u
   ^
/usr/local/git-git-51993a4/Documentation/git-config.xml:1354: parser error : 
Opening and ending tag mismatch: subscript line 1354 and literal
   of files which are not meant to be tracked.  "/
   ^
/usr/local/git-git-51993a4/Documentation/git-config.xml:1355: parser error : 
Opening and ending tag mismatch: literal line 1355 and subscript
to the value of $HOME and "user/
   ^
/usr/local/git-git-51993a4/Documentation/git-config.xml:2304: parser error : 
Opening and ending tag mismatch: subscript line 2304 and literal
"/" is expanded to the value of $
^
/usr/local/git-git-51993a4/Documentation/git-config.xml:2304: parser error : 
Opening and ending tag mismatch: literal line 2304 and subscript
 is expanded to the value of $HOME and "
   ^
/usr/local/git-git-51993a4/Documentation/git-config.xml:4609: parser error : 
Opening and ending tag mismatch: emphasis line 4609 and literal
oes not understand the version 2 .idx
   ^
/usr/local/git-git-51993a4/Documentation/git-config.xml:4611: parser error : 
Opening and ending tag mismatch: literal line 4611 and emphasis
that will copy both .pack file and corresponding <
^
/usr/local/git-git-51993a4/Documentation/git-config.xml:4611: parser error : 
Opening and ending tag mismatch: emphasis line 4611 and literal
/literal> file and corresponding .idx
   ^
/usr/local/git-git-51993a4/Documentation/git-config.xml:4613: parser error : 
Opening and ending tag mismatch: literal line 4613 and emphasis
older version of git. If the .pack file is smaller
 ^
/usr/local/git-git-51993a4/Documentation/git-config.xml:4617: parser error : 
Opening and ending tag mismatch: literal line 4617 and emphasis
the .idx file.
^
/usr/local/git-git-51993a4/Documentation/git-config.xml:4617: parser error : 
Opening and ending tag mismatch: emphasis line 4616 and literal
the .idx file.
  ^
/usr/local/git-git-51993a4/Documentation/git-config.xml:4666: parser error : 
Opening and ending tag mismatch: emphasis line 4666 and literal
ral>git config pretty.changelog "format: %H %s"git log "--pretty=format:
   ^
make[1]: *** [git-config.1] Error 1
make[1]: Leaving directory `/usr/local/git-git-51993a4/Documentation'
make: *** [doc] Error 2

---
and the patch which permitted me to proceed
---

643,644c643,644
< found. The value of include.path is subject to tilde 
expansion: /
< is expanded to the value of $HOME, and 
user/ to the specified
---
> found. The value of include.path is subject to tilde 
> expansion: /
> is expanded to the value of $HOME, and 
> user/ to the specified
1354,1355c1354,1355
< of files which are not meant to be tracked.  "/" 
is expanded
< to the value of $HOME and 
"user/" to the specified user's
---
> of files which are not meant to be tracked.  
> "/" is expanded
> to the value of $HOME and 
> "user/" to the specified user's
2304c2304
< "/" is expanded to the value of 
$HOME and "user/" to the
---
> "/" is expanded to the value of 
> $HOME and "user/" to the
4609c4609
< If you have an old git that does not understand the version 2 
.idx file,
---
> If you have an old git that does not understand the version 2 
> .idx file,
4611c4611
< that will copy both .pack file and corresponding 
.idx file from the
---
> that will copy both .pack file and 
> corresponding .idx file from the
4613c4613
< older version of git. If the .pack file is smaller than 2 
GB, however,
---
> older version of git. If the .pack file is 
> smaller than 2 GB, however,
4616,4617c4616,4617
<  on the .pack file to regenerate
< the .idx file.
---
>  on the .pack file to regenerate
> the .idx file.
4666c4666
< running git config pretty.changelog "format: %H %s"
---
> running git config pretty.changelog "format: role="strong"> %H %s"
4668c4668
< to be equivalent to running git log "--pretty=format: %H 
%s".
---
> to be equiva

bug report, v1.7.12.1 -- Documentation/git-check-ref-format.xml:162: parser error

2012-09-30 Thread Hugh Esco
doing a source install of git v1.7.12.1, 
on the `make all doc` step, I get:

xmlto: input does not validate (status 1)
/usr/local/git-git-51993a4/Documentation/git-check-ref-format.xml:162: parser 
error : Opening and ending tag mismatch: emphasis line 162 and literal
me> is allowed to contain a single foo//bar but not foo/bar*
---
> enabled,  is allowed to contain a single 
> 

164c164
< foo/bar but not foo/bar*).
---
> foo//bar but not 
> foo/bar*).

---
Next issue shows up in:
Documentation/git-config.xml
details coming under separate cover.

-- 
Hugh Esco 
skype: hresco3_ ; 678-921-8186 x21 
http://www.CampaignFoundations.com/
Providing Application Hosting, Telephony, 
Custom Development and Consulting Services 
to Green Candidates, Green Parties and
the non profits working for a just and sustainable future.

if( $insurance->rationing() ) { $people->die(); }
if( isa_ok($self,'Troy::Davis') =~ m/^ok/) { $people->are_whole(); }



--
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 report, v1.7.12.1 -- Documentation/git-bundle.xml:130: parser error

2012-09-30 Thread Hugh Esco
doing a source install of git v1.7.12.1, 
on the `make all doc` step, I get:

xmlto: input does not validate (status 1)
/usr/local/git-git-51993a4/Documentation/git-bundle.xml:130: parser error : 
Opening and ending tag mismatch: subscript line 130 and literal
such as master1 cannot be packaged, but are perfec
 ^
/usr/local/git-git-51993a4/Documentation/git-bundle.xml:134: parser error : 
Opening and ending tag mismatch: literal line 134 and subscript
specified explicitly (e.g. ^master10), or implici
   ^
make[1]: *** [git-bundle.1] Error 1
make[1]: Leaving directory `/usr/local/git-git-51993a4/Documentation'
make: *** [doc] Error 2

---
and the patch which permitted me to proceed
---

130c130
> such as master1 cannot be packaged, 
> but are perfectly suitable for
---
< such as master1 cannot be packaged, but are 
perfectly suitable for

134c134
> specified explicitly (e.g. 
> ^master10), or implicitly (e.g.
---
< specified explicitly (e.g. ^master10), or 
implicitly (e.g.

---
---

Next bug encountered with:
Documentation/git-check-ref-format.xml

details to follow in next email.

-- 
Hugh Esco 
404-424-8701
YourMessageDelivered.com
Keeping Your Group in the Loop
No Matter How Large or How Small
--
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 report, v1.7.12.1 -- user-manual.xml:3739: parser error

2012-09-30 Thread Junio C Hamano
Hugh Esco  writes:

> doing a source install of git v1.7.12.1, 
> on the `make all doc` step, I get:
>
> user-manual.xml:3739: parser error : Opening and ending tag mismatch: 
> emphasis line 3739 and literal
>   char , but is actually expected to be a 
> poin
>  ^
> user-manual.xml:3741: parser error : Opening and ending tag mismatch: literal 
> line 3741 and emphasis
> mit.  Note that whenever a SHA-1 is passed as unsigned char 
> 
>   
>  ^
> unable to parse user-manual.xml
> make[1]: *** [user-manual.html] Error 6
> make[1]: Leaving directory `/usr/local/git-git-51993a4/Documentation'
> make: *** [doc] Error 2

Thanks for a report.

I and other regulars on the list who run "make doc" are not getting
that error (otherwise the source wouldn't have tagged as a release),
so there must be some difference between the environments that are
supported and your setting.

As described in the INSTALL document at the top-level of the source
tree, our documentation toolchain has external dependencies on
asciidoc, xmlto, and docbook-xsl among other things.  My quick check
seems indicate that I am using asciidoc 8.5.2-1, xmlto 0.0.23-2, and
docbook-xsl 1.75.2.

What version are you using?  It could be you are using a newer
version of something that is backward incompatible we haven't
encountered (or you could be using a version that is too stale).



--
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 report, v1.7.12.1 -- user-manual.xml:3739: parser error

2012-09-30 Thread Hugh Esco
Apologies for duplicates.  
Perhaps the patch below will earn me a small bit of leeway.

-- Hugh Esco

doing a source install of git v1.7.12.1, 
on the `make all doc` step, I get:

user-manual.xml:3739: parser error : Opening and ending tag mismatch: emphasis 
line 3739 and literal
  char , but is actually expected to be a poin
 ^
user-manual.xml:3741: parser error : Opening and ending tag mismatch: literal 
line 3741 and emphasis
mit.  Note that whenever a SHA-1 is passed as unsigned char 
   ^
unable to parse user-manual.xml
make[1]: *** [user-manual.html] Error 6
make[1]: Leaving directory `/usr/local/git-git-51993a4/Documentation'
make: *** [doc] Error 2

--
and the patch which permitted me to proceed
although it removes a malformed  tag
--

3739c3739
<   char , but is actually expected to be a pointer to 
unsigned
---
>   char , but is actually expected to be a 
> pointer to unsigned

3741c3741
<   commit.  Note that whenever a SHA-1 is passed as unsigned char 
, it
---
>   commit.  Note that whenever a SHA-1 is passed as unsigned char 
> , it

--

I've encountered another issue with:
Documentation/git-bundle.xml

I will post the details in a distinct message, 
perhaps even with another patch if I can sort this out.

-- 
Hugh Esco 
skype: hresco3_ ; 678-921-8186 x21 
http://www.CampaignFoundations.com/
Providing Application Hosting, Telephony, 
Custom Development and Consulting Services 
to Green Candidates, Green Parties and
the non profits working for a just and sustainable future.

if( $insurance->rationing() ) { $people->die(); }
if( isa_ok($self,'Troy::Davis') =~ m/^ok/) { $people->are_whole(); }

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