* Re: [PATCH] git.c: make usage match manual page
From: Kevin Bracey @ 2013-03-11 20:43 UTC (permalink / raw)
To: git; +Cc: Junio C Hamano
In-Reply-To: <7vli9t909a.fsf@alter.siamese.dyndns.org>
On 11/03/2013 21:58, Junio C Hamano wrote:
> Kevin Bracey <kevin@bracey.fi> writes:
>
>> Re-ordered option list in command-line usage to match the manual page.
>> Also makes it less than 80-characters wide.
> Thanks (s/Re-ordered/reorder/ and s/makes/make/, though).
Got it. But I'm going to reword it, to follow the history of the manual
change.
> Is git.c the only one whose "-h" output does not match the manual
> synopsis?
>
Generally, "-h" just puts "<options>" in the synopsis, and then prints a
line per option, so most commands don't really match the manual "show
all options on one line" style anyway. git.c is atypical. (Something
else to look at for the whole git help thing? Should "git -h" print a
option list in that style?)
But, yes, I've found a few others that are show almost the same thing as
the manual but with subtle pointless differences. "git remote", for
example. That's a larger project, I feel; the 80-column thing is key here.
Kevin
^ permalink raw reply
* [PATCH] git.c: rearrange git synopsis to fit in 80 columns
From: Kevin Bracey @ 2013-03-11 20:44 UTC (permalink / raw)
To: git; +Cc: Kevin Bracey
In-Reply-To: <1363031055-13562-1-git-send-email-kevin@bracey.fi>
Make the command line use the narrower synopsis layout that the man page
has used since commit 68e4b55.
Signed-off-by: Kevin Bracey <kevin@bracey.fi>
---
git.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/git.c b/git.c
index d33f9b3..2a98624 100644
--- a/git.c
+++ b/git.c
@@ -6,10 +6,10 @@
#include "run-command.h"
const char git_usage_string[] =
- "git [--version] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]\n"
+ "git [--version] [--help] [-c name=value]\n"
+ " [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]\n"
" [-p|--paginate|--no-pager] [--no-replace-objects] [--bare]\n"
" [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]\n"
- " [-c name=value] [--help]\n"
" <command> [<args>]";
const char git_more_info_string[] =
--
1.8.2.rc3.7.g1100d09.dirty
^ permalink raw reply related
* Re: [PATCH/RFC] Make help behaviour more consistent
From: Philip Oakley @ 2013-03-11 21:06 UTC (permalink / raw)
To: Junio C Hamano, Matthieu Moy; +Cc: Kevin Bracey, git
In-Reply-To: <7vppz592v5.fsf@alter.siamese.dyndns.org>
From: "Junio C Hamano" <gitster@pobox.com>
Sent: Monday, March 11, 2013 7:02 PM
> Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes:
>
>> Kevin Bracey <kevin@bracey.fi> writes:
>>
>>> Two significant usability flaws here:
>>> - If using man, "man git" to side-step "git help" is obvious. But
>>> if
>>> trying to use help.format=web, how to get the root html page? My
>>> technique was "git help XXX" and click the "git(1) suite" link at
>>> the
>>> bottom. "git help git" is non-obvious and apparently undocumented
>>> (it's not mentioned by "git", "git help", or "git help help"...).
>>
>> Can't this be solved by adding something like
>>
>> See 'git help git' for general help about Git.
>>
>> to the output of "git help"? I think the fact that "git help"
>> provides a
>> small amount of output (typically: fits on one screen) is a nice
>> feature
>> that avoids scaring people too early with the actual doc.
>
> That sounds like a good direction to go in.
My earlier attempt, and Junio's reply
http://thread.gmane.org/gmane.comp.version-control.git/217352
It is tricky making sure that the message covers help for git, help's
own help,
the guides, and the commands, all in one compact usage line, while also
covering the -h and --help options (which may not be known to new Git
users on Windows, though probably obvious to Linux/Unix users).
Philip
^ permalink raw reply
* Re: rebase: strange failures to apply patc 3-way
From: Max Horn @ 2013-03-11 21:10 UTC (permalink / raw)
To: Andrew Wong; +Cc: git@vger.kernel.org
In-Reply-To: <CADgNjanQxMFrQG=7SqgAXv5PW8OEfG+1kZt_Mrq27OcP1uyGtA@mail.gmail.com>
On 11.03.2013, at 20:15, Andrew Wong wrote:
> On 3/10/13, Max Horn <max@quendi.de> wrote:
>> I did run
>>
>> touch lib/*.* src/*.* && git update-index --refresh && git diff-files
>>
>> a couple dozen times (the "problematic" files where in src/ and lib), but
>> nothing happened. I just re-checked, and the rebase still fails in the same
>> why...
>>
>> Perhaps I should add some printfs into the git source to figure out what
>> exactly it thinks is not right about those files... i.e. how does it come to
>> the conclusion that I have local changes, exactly. I don't know how Git does
>> that -- does it take the mtime from (l)stat into account? Perhaps problems
>> with my machine's clock could be responsible?
>
> Instead of using "touch", maybe it'd be better if you run "ls-files"
> and "stat" at the point where rebase failed. You should run the
> command as soon as rebase failed. Don't try to run any git commands,
> as they might change the index state.
So I tried this:
git rebase branches/stable-4.6 # ... which leads to the error
git ls-files -m
but got nothing. Perhaps you had something else in mind, though, but I am not quite sure what... sorry for being dense, but if you let me know what exactly you meant, I'll be happy to try that. As for the stat command:
>
> And yes, git does make use of mtime and ctime from lstat to some
> degree when detecting file changes. Inserting printf's to print the
> timestamp might help, but the output might be too overwhelming to make
> out useful information, especially during a rebase.
>
> BTW, it looks like "stat" command on OS X only prints out timestamps
> in seconds, and doesn't show you the nanoseconds part, which may be
> significant in your situation. Instead of using the "stat" command,
> try using this python command to print out the nanoseconds parts:
> python -c "import sys;import os;s=os.stat(sys.argv[1]);print('%d, %f,
> %f' % (s.st_size, s.st_ctime, s.st_mtime))" file1
I can do that, but I am not quite sure what the output should tell me? BTW, I think OS X just does not provide the stat information on a nanosecond level, at least that python command doesn't seem to yield useful extra data... Here is what I got after I just triggered the failing rebase (today it's again a different file it fails on that yesterday...). For comparision, I run stat first on the file with "conflicts", and then on a file that is not being touched by the rebase:
File: ‘BAD-FILE’
Size: 21058 Blocks: 48 IO Block: 4096 regular file
Device: e000004h/234881028d Inode: 19108072 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 502/ mhorn) Gid: ( 20/ staff)
Access: 2013-03-11 21:40:14.000000000 +0100
Modify: 2013-03-11 21:40:12.000000000 +0100
Change: 2013-03-11 21:40:14.000000000 +0100
Birth: 2013-03-11 21:40:12.000000000 +0100
File: ‘NEUTRAL-FILE’
Size: 1425 Blocks: 8 IO Block: 4096 regular file
Device: e000004h/234881028d Inode: 18180450 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 502/ mhorn) Gid: ( 20/ staff)
Access: 2013-03-11 17:58:30.000000000 +0100
Modify: 2013-03-10 14:20:39.000000000 +0100
Change: 2013-03-10 14:20:39.000000000 +0100
Birth: 2013-02-27 16:18:57.000000000 +0100
Here is the output of the python script for the two files:
21058, 1363034414.000000, 1363034412.000000
1425, 1362921639.000000, 1362921639.000000
One thing I notice is that ctime equals atime and both are larger than mtime. But I have no clue if that has any significance... hmm
> Perhaps you could hack git-am.sh a bit to get more debugging info too.
> Hm, maybe a good place to start is un-silencing the output of "git
> apply". Inside "git-am.sh", you should see a line like:
> git apply $squelch
> Remove the $squelch, and see what output it generates.
error: BAD-FILE: does not match index
I inserted "git ls-files -m" before that but that didn't print anything nor had it any other effect.
>
> Also, since you're getting the 3-way merge, you could also insert the
> "ls-files" and "stat" right after "git-merge-recursive", but before
> "die".
>
Aha, so that was interesting: I inserted both a "stat" invocation, and also invoked the "md5" tool to be able to tell whether the file content matched what I thought it should match. Doing that caused the breaking commit to shift. So, I added a second stat / md5 pair on the new breaking file. After doing that, the rebase suddenly completed! I reset -- hard to the previous state, tried again, and again it worked. And this after consistently failing (albeit in differing places) in maybe a hundred or more tries before. Removing those two calls, it failed again. I tried inserting a "sleep 1", just in case it's a race, but with that it still failed.
I then re-added the stat / md5 calls, and -- it failed again, but this much earlier (in commit 8, not around commits 14-18).
So I added the new conflicting fail to the stat/md5 calls (for a total of three files), and it failed in commit 4. Despite adding the new file (number 4), it got stuck in this very commit in several attempts. I then for a while did some other stuff (like reading through the "git ls-files" man page ;-). Trying the rebase once more, with the stat / md5 calls on four files, it went back to failing in the place it started out failing today (commit 16). Adding / remove the stat&md5 invocations didn't seem to have an effect at this point.
Thanks,
Max
^ permalink raw reply
* Re: rebase: strange failures to apply patc 3-way
From: Max Horn @ 2013-03-11 21:20 UTC (permalink / raw)
To: Andrew Wong; +Cc: git@vger.kernel.org
In-Reply-To: <CADgNjanQxMFrQG=7SqgAXv5PW8OEfG+1kZt_Mrq27OcP1uyGtA@mail.gmail.com>
PS: Just as a side note, I should mention that I have done tons of rebases on various repositories on this very machine: same hard drive, same file system; the git version of course has changed over time, but as I already described, I can reproduce the same issue with older git versions.
All I want to say here is: While this may of course be a bug of OS X or my machine may be faulty or whatever, it is not as if this issue is occurring all over the place. It is so far somehow specific to this repository, or even the particular branch. So it is probably not something as simple as a faulty clock, because then I should be seeing rebases fail all over the place, right? (Hm, OK, admittedly I didn't try any other big rebases in the last couple days. And right now I have no good example at hand, i.e. a non-trivial branch that cleanly rebases to some other branch)
Cheers,
Max
^ permalink raw reply
* Re: rebase: strange failures to apply patc 3-way
From: Andrew Wong @ 2013-03-11 21:34 UTC (permalink / raw)
To: Max Horn; +Cc: git@vger.kernel.org
In-Reply-To: <E042F4D9-79DF-4AEF-8EDE-41BA9E5FB9EC@quendi.de>
On 3/11/13, Max Horn <max@quendi.de> wrote:
> So I tried this:
>
> git rebase branches/stable-4.6 # ... which leads to the error
> git ls-files -m
>
> but got nothing. Perhaps you had something else in mind, though, but I am
> not quite sure what... sorry for being dense, but if you let me know what
> exactly you meant, I'll be happy to try that. As for the stat command:
I'm still digesting the information form the email. Just want to
quickly mention that the "ls-files" command should be:
$ git ls-files --debug file1 file2
You should always get output. It prints out stat-like information for
files in the index.
^ permalink raw reply
* [PATCH v2 0/3] fix git-p4 client root symlink problems
From: Pete Wyckoff @ 2013-03-11 21:45 UTC (permalink / raw)
To: git; +Cc: Miklós Fazekas, John Keeping, Johannes Sixt
In-Reply-To: <5139883C.6080308@viscovery.net>
Update from v1:
* add SYMLINKS prerequisite to the new symlink test
Thanks Hannes.
Miklós pointed out in
http://thread.gmane.org/gmane.comp.version-control.git/214915
that when the p4 client root included a symlink, bad things
happen. It is fixable, but inconvenient, to use an absolute path
in one's p4 client. It's not too hard to be smarter about this
in git-p4.
Thanks to Miklós for the patch, and to John for the style
suggestions. I wrote a couple of tests to make sure this part
doesn't break again.
This is maybe a bug introduced by bf1d68f (git-p4: use absolute
directory for PWD env var, 2011-12-09), but that's so long ago
that I don't think this is a candidate for maint.
-- Pete
Miklós Fazekas (1):
git p4: avoid expanding client paths in chdir
Pete Wyckoff (2):
git p4 test: make sure P4CONFIG relative path works
git p4 test: should honor symlink in p4 client root
git-p4.py | 29 ++++++++++++++++++++++-------
t/t9808-git-p4-chdir.sh | 41 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 63 insertions(+), 7 deletions(-)
--
1.8.2.rc2.65.g92f3e2d
^ permalink raw reply
* [PATCH v2 1/3] git p4 test: make sure P4CONFIG relative path works
From: Pete Wyckoff @ 2013-03-11 21:45 UTC (permalink / raw)
To: git; +Cc: Miklós Fazekas, John Keeping, Johannes Sixt
In-Reply-To: <1363038329-20185-1-git-send-email-pw@padd.com>
This adds a test for the fix in bf1d68f (git-p4: use absolute
directory for PWD env var, 2011-12-09). It is necessary to
set PWD to an absolute path so that p4 can find files referenced
by non-absolute paths, like the value of the P4CONFIG environment
variable.
P4 does not open files directly; it builds a path by prepending
the contents of the PWD environment variable.
Signed-off-by: Pete Wyckoff <pw@padd.com>
---
t/t9808-git-p4-chdir.sh | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/t/t9808-git-p4-chdir.sh b/t/t9808-git-p4-chdir.sh
index dc92e60..55c5e36 100755
--- a/t/t9808-git-p4-chdir.sh
+++ b/t/t9808-git-p4-chdir.sh
@@ -42,6 +42,20 @@ test_expect_success 'P4CONFIG and relative dir clone' '
)
'
+# Common setup using .p4config to set P4CLIENT and P4PORT breaks
+# if clone destination is relative. Make sure that chdir() expands
+# the relative path in --dest to absolute.
+test_expect_success 'p4 client root would be relative due to clone --dest' '
+ test_when_finished cleanup_git &&
+ (
+ echo P4PORT=$P4PORT >git/.p4config &&
+ P4CONFIG=.p4config &&
+ export P4CONFIG &&
+ unset P4PORT &&
+ git p4 clone --dest="git" //depot
+ )
+'
+
test_expect_success 'kill p4d' '
kill_p4d
'
--
1.8.2.rc2.65.g92f3e2d
^ permalink raw reply related
* [PATCH v2 2/3] git p4 test: should honor symlink in p4 client root
From: Pete Wyckoff @ 2013-03-11 21:45 UTC (permalink / raw)
To: git; +Cc: Miklós Fazekas, John Keeping, Johannes Sixt
In-Reply-To: <1363038329-20185-1-git-send-email-pw@padd.com>
This test fails when the p4 client root includes
a symlink. It complains:
Path /vol/bar/projects/foo/... is not under client root /p/foo
and dumps a traceback.
Signed-off-by: Pete Wyckoff <pw@padd.com>
---
t/t9808-git-p4-chdir.sh | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/t/t9808-git-p4-chdir.sh b/t/t9808-git-p4-chdir.sh
index 55c5e36..4773296 100755
--- a/t/t9808-git-p4-chdir.sh
+++ b/t/t9808-git-p4-chdir.sh
@@ -56,6 +56,33 @@ test_expect_success 'p4 client root would be relative due to clone --dest' '
)
'
+# When the p4 client Root is a symlink, make sure chdir() does not use
+# getcwd() to convert it to a physical path.
+test_expect_failure SYMLINKS 'p4 client root symlink should stay symbolic' '
+ physical="$TRASH_DIRECTORY/physical" &&
+ symbolic="$TRASH_DIRECTORY/symbolic" &&
+ test_when_finished "rm -rf \"$physical\"" &&
+ test_when_finished "rm \"$symbolic\"" &&
+ mkdir -p "$physical" &&
+ ln -s "$physical" "$symbolic" &&
+ test_when_finished cleanup_git &&
+ (
+ P4CLIENT=client-sym &&
+ p4 client -i <<-EOF &&
+ Client: $P4CLIENT
+ Description: $P4CLIENT
+ Root: $symbolic
+ LineEnd: unix
+ View: //depot/... //$P4CLIENT/...
+ EOF
+ git p4 clone --dest="$git" //depot &&
+ cd "$git" &&
+ test_commit file2 &&
+ git config git-p4.skipSubmitEdit true &&
+ git p4 submit
+ )
+'
+
test_expect_success 'kill p4d' '
kill_p4d
'
--
1.8.2.rc2.65.g92f3e2d
^ permalink raw reply related
* Re: [PATCH/RFC] Make help behaviour more consistent
From: Junio C Hamano @ 2013-03-11 21:50 UTC (permalink / raw)
To: Philip Oakley; +Cc: Matthieu Moy, Kevin Bracey, git
In-Reply-To: <CD3017A6746B45FE8A5F242E4C597B51@PhilipOakley>
"Philip Oakley" <philipoakley@iee.org> writes:
> From: "Junio C Hamano" <gitster@pobox.com>
>> Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> writes:
>>
>>> See 'git help git' for general help about Git.
>>>
>>> to the output of "git help"?
>> ...
>> That sounds like a good direction to go in.
>
> My earlier attempt, and Junio's reply
> http://thread.gmane.org/gmane.comp.version-control.git/217352
Yeah, I threw "git help git" in the general category of "git help
<cmd>" in that message, and now I realize that it may arguably be
confusing to some people.
Perhaps spend one more line to do something like this?
'git help -a' and 'git help -g' lists available subcommands and
concept guides. See 'git help <command>' or 'git help <concept>'
to read about a specific subcommand or concept.
For an overview, see 'git help git'.
I am neutral between the above and this:
For an overview, see 'git help git'.
'git help -a' and 'git help -g' lists available subcommands and
concept guides. See 'git help <command>' or 'git help <concept>'
to read about a specific subcommand or concept.
Hrm?
^ permalink raw reply
* [PATCH v2 3/3] git p4: avoid expanding client paths in chdir
From: Pete Wyckoff @ 2013-03-11 21:45 UTC (permalink / raw)
To: git; +Cc: Miklós Fazekas, John Keeping, Johannes Sixt
In-Reply-To: <1363038329-20185-1-git-send-email-pw@padd.com>
From: Miklós Fazekas <mfazekas@szemafor.com>
The generic chdir() helper sets the PWD environment
variable, as that is what is used by p4 to know its
current working directory. Normally the shell would
do this, but in git-p4, we must do it by hand.
However, when the path contains a symbolic link,
os.getcwd() will return the physical location. If the
p4 client specification includes symlinks, setting PWD
to the physical location causes p4 to think it is not
inside the client workspace. It complains, e.g.
Path /vol/bar/projects/foo/... is not under client root /p/foo
One workaround is to use AltRoots in the p4 client specification,
but it is cleaner to handle it directly in git-p4.
Other uses of chdir still require setting PWD to an
absolute path so p4 features like P4CONFIG work. See
bf1d68f (git-p4: use absolute directory for PWD env
var, 2011-12-09).
[ pw: tweak patch and commit message ]
Thanks-to: John Keeping <john@keeping.me.uk>
Signed-off-by: Pete Wyckoff <pw@padd.com>
---
git-p4.py | 29 ++++++++++++++++++++++-------
t/t9808-git-p4-chdir.sh | 2 +-
2 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/git-p4.py b/git-p4.py
index 647f110..7288c0b 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -79,12 +79,27 @@ def p4_build_cmd(cmd):
real_cmd += cmd
return real_cmd
-def chdir(dir):
- # P4 uses the PWD environment variable rather than getcwd(). Since we're
- # not using the shell, we have to set it ourselves. This path could
- # be relative, so go there first, then figure out where we ended up.
- os.chdir(dir)
- os.environ['PWD'] = os.getcwd()
+def chdir(path, is_client_path=False):
+ """Do chdir to the given path, and set the PWD environment
+ variable for use by P4. It does not look at getcwd() output.
+ Since we're not using the shell, it is necessary to set the
+ PWD environment variable explicitly.
+
+ Normally, expand the path to force it to be absolute. This
+ addresses the use of relative path names inside P4 settings,
+ e.g. P4CONFIG=.p4config. P4 does not simply open the filename
+ as given; it looks for .p4config using PWD.
+
+ If is_client_path, the path was handed to us directly by p4,
+ and may be a symbolic link. Do not call os.getcwd() in this
+ case, because it will cause p4 to think that PWD is not inside
+ the client path.
+ """
+
+ os.chdir(path)
+ if not is_client_path:
+ path = os.getcwd()
+ os.environ['PWD'] = path
def die(msg):
if verbose:
@@ -1624,7 +1639,7 @@ class P4Submit(Command, P4UserMap):
new_client_dir = True
os.makedirs(self.clientPath)
- chdir(self.clientPath)
+ chdir(self.clientPath, is_client_path=True)
if self.dry_run:
print "Would synchronize p4 checkout in %s" % self.clientPath
else:
diff --git a/t/t9808-git-p4-chdir.sh b/t/t9808-git-p4-chdir.sh
index 4773296..11d2b51 100755
--- a/t/t9808-git-p4-chdir.sh
+++ b/t/t9808-git-p4-chdir.sh
@@ -58,7 +58,7 @@ test_expect_success 'p4 client root would be relative due to clone --dest' '
# When the p4 client Root is a symlink, make sure chdir() does not use
# getcwd() to convert it to a physical path.
-test_expect_failure SYMLINKS 'p4 client root symlink should stay symbolic' '
+test_expect_success SYMLINKS 'p4 client root symlink should stay symbolic' '
physical="$TRASH_DIRECTORY/physical" &&
symbolic="$TRASH_DIRECTORY/symbolic" &&
test_when_finished "rm -rf \"$physical\"" &&
--
1.8.2.rc2.65.g92f3e2d
^ permalink raw reply related
* Re: rebase: strange failures to apply patc 3-way
From: Andrew Wong @ 2013-03-11 22:10 UTC (permalink / raw)
To: Max Horn; +Cc: git@vger.kernel.org
In-Reply-To: <E30ECECD-DD58-41E2-AA7C-18F83E5E74E6@quendi.de>
On 3/11/13, Max Horn <max@quendi.de> wrote:
> PS: Just as a side note, I should mention that I have done tons of rebases
> on various repositories on this very machine: same hard drive, same file
> system; the git version of course has changed over time, but as I already
> described, I can reproduce the same issue with older git versions.
What if you do a "git clone" from this repo to an entirely new repo? I
wonder if the rebase issue still happens in the new repo...
Could you also post the .git/config file from the repo?
If supported, git could actually make use of threading when doing
"stat"... it should be disabled by default though, but you could try
disabling it with this config:
git config core.preloadindex false
But I don't know why that'd only affect this one repo and not the
others though...
^ permalink raw reply
* git svn error "Not a valid object name"
From: Adam Retter @ 2013-03-11 22:17 UTC (permalink / raw)
To: git; +Cc: Dannes Wessels, Wolfgang Meier, Leif-Jöran Olsson
Hi there,
We have been attempting to move our smallish SVN repository for our
Open Source project (ww.exist-db.org) from SourceForge over to GitHub
and it is not going well at all.
We started with svn2git as recommended by GitHub and that didnt work,
we are not on to using 'git svn' directly. If you want the backlog of
detail its here - http://markmail.org/message/khjx6n2jbvcdnnf5
Our public SourceForge Subversion repository is here:
http://svn.code.sf.net/p/exist/code/trunk/eXist
We cloned that to the local server using rsync and are attempting to
migrate to git using the following commands:
$ git svn init -t tags -b stable -T trunk
file:///home/ec2-user/svn-rsync/code new-git-repo
$ cd new-git-repo
$ git config svn-remote.svn.preserve-empty-dirs true
$ git config svn-remote.svn.rewriteRoot https://svn.code.sf.net/p/exist/code
$ git svn fetch -A /home/ec2-user/.svn2git/authors.txt
It all started well and was running away for quite some hours, when
the following error occurred:
fatal: Not a valid object name
ls-tree -z ./webapp/api/: command returned error: 128
I have no idea what this means, or how to fix this.
We are using Git version 1.8.1.GIT on Amazon EC2 Linux.
Any suggestions please?
I reproduce the log of the last two revisions output from running 'git
svn fetch ...' below, in case that provides any clues:
r3447 = e7d8dd23f78464228128e9b72711c5722b07ad42 (refs/remotes/trunk)
M eXist-1.0/src/org/exist/xquery/test/XQueryFunctionsTest.java
M eXist-1.0/src/org/exist/xquery/functions/FunString.java
r3448 = 811a870bb7b83d36ce41b2afab39b2fecf59803d (refs/remotes/trunk)
Found possible branch point:
file:///home/ec2-user/svn-rsync/code/trunk/eXist-1.0 =>
file:///home/ec2-user/svn-rsync/code/tags/DLN3445-pre-merge, 3452
Initializing parent: refs/remotes/tags/DLN3445-pre-merge@3452
A conf.xml
A src/org/exist/xmldb.xsl
A src/org/exist/Parser.java
A src/org/exist/util/LockOwner.java
A src/org/exist/util/CollectionScanner.java
A src/org/exist/util/SyntaxException.java
A src/org/exist/util/VariableByteInputStream.java
A src/org/exist/util/VariableByteOutputStream.java
A src/org/exist/util/LockException.java
A src/org/exist/util/Configuration.java
A src/org/exist/util/OrderedLinkedList.java
A src/org/exist/util/XMLFilenameFilter.java
A src/org/exist/util/PorterStemmer.java
A src/org/exist/util/SimpleTimeOutLock.java
A src/org/exist/util/ByteConversion.java
A src/org/exist/util/ProgressListener.java
A src/org/exist/util/IncludeXMLFilter.java
A src/org/exist/util/DatabaseConfigurationException.java
A src/org/exist/util/FastByteBuffer.java
A src/org/exist/util/Lockable.java
A src/org/exist/util/DirectoryScanner.java
A src/org/exist/util/FastStringBuffer.java
A src/org/exist/util/LongLinkedList.java
A src/org/exist/util/Lock.java
A src/org/exist/util/ProgressBar.java
A src/org/exist/util/LongArrayList.java
A src/org/exist/util/ReadOnlyException.java
A src/org/exist/util/VariableByteCoding.java
A src/org/exist/util/XMLUtil.java
A src/org/exist/util/test/VariableByteStreamTest.java
A src/org/exist/util/ObjectPool.java
A src/org/exist/util/Arrays.java
A src/org/exist/util/ProgressIndicator.java
A src/org/exist/util/SelectorUtils.java
A src/org/exist/http/HttpServer.java
A src/org/exist/http/HttpServerConnection.java
A src/org/exist/dom/NodeListImpl.java
A src/org/exist/dom/TextImpl.java
A src/org/exist/dom/NodeImpl.java
A src/org/exist/dom/VirtualNodeSet.java
A src/org/exist/dom/CharacterDataImpl.java
A src/org/exist/dom/NamedNodeMapImpl.java
A src/org/exist/dom/ElementImpl.java
A src/org/exist/dom/SymbolTable.java
A src/org/exist/dom/NodeIDSet.java
A src/org/exist/dom/NodeProxyFactory.java
A src/org/exist/dom/EmptyNodeSet.java
A src/org/exist/dom/SortedNodeSet.java
A src/org/exist/dom/DocumentFragmentImpl.java
A src/org/exist/dom/CommentImpl.java
A src/org/exist/dom/DOMImplementation.java
A src/org/exist/dom/NodeProxy.java
A src/org/exist/dom/DocumentIterator.java
A src/org/exist/dom/DocumentSet.java
A src/org/exist/dom/ArraySet.java
A src/org/exist/dom/Collection.java
A src/org/exist/dom/AttrImpl.java
A src/org/exist/dom/ProcessingInstructionImpl.java
A src/org/exist/dom/DocumentImpl.java
A src/org/exist/dom/NodeSet.java
A src/org/exist/dom/.ElementImpl.java.swp
A src/org/exist/dom/DocumentTypeImpl.java
A src/org/exist/cocoon/XMLDBSessionLoginAction.java
A src/org/exist/cocoon/XSPHelper.java
A src/org/exist/cocoon/Exist.java
A src/org/exist/cocoon/ExistImpl.java
A src/org/exist/xpath/Literal.java
A src/org/exist/xpath/FunNear.java
A src/org/exist/xpath/FunEndsWith.java
A src/org/exist/xpath/Expression.java
A src/org/exist/xpath/FunRound.java
A src/org/exist/xpath/Predicate.java
A src/org/exist/xpath/OpAnd.java
A src/org/exist/xpath/IntNumber.java
A src/org/exist/xpath/ValueString.java
A src/org/exist/xpath/FunKeywordMatchAll.java
A src/org/exist/xpath/Environment.java
A src/org/exist/xpath/LocationStep.java
A src/org/exist/xpath/FunId.java
A src/org/exist/xpath/FunNot.java
A src/org/exist/xpath/FunKeywordMatch.java
A src/org/exist/xpath/FLWR.java
A src/org/exist/xpath/Value.java
A src/org/exist/xpath/FunLast.java
A src/org/exist/xpath/ValueBoolean.java
A src/org/exist/xpath/FunPosition.java
A src/org/exist/xpath/FunSum.java
A src/org/exist/xpath/FunString.java
A src/org/exist/xpath/OpOr.java
A src/org/exist/xpath/NameTest.java
A src/org/exist/xpath/FunStrLength.java
A src/org/exist/xpath/BinaryOp.java
A src/org/exist/xpath/FunCeiling.java
A src/org/exist/xpath/VarBinding.java
A src/org/exist/xpath/ValueNumber.java
A src/org/exist/xpath/NodeTest.java
A src/org/exist/xpath/AnyTest.java
A src/org/exist/xpath/FunTrue.java
A src/org/exist/xpath/FunBoolean.java
A src/org/exist/xpath/ValueSet.java
A src/org/exist/xpath/FunName.java
A src/org/exist/xpath/OpEquals.java
A src/org/exist/xpath/RootNode.java
A src/org/exist/xpath/PathExpr.java
A src/org/exist/xpath/ValueException.java
A src/org/exist/xpath/ValueNodeSet.java
A src/org/exist/xpath/FunNumber.java
A src/org/exist/xpath/FunCount.java
A src/org/exist/xpath/OpNumeric.java
A src/org/exist/xpath/FunFalse.java
A src/org/exist/xpath/Step.java
A src/org/exist/xpath/Constants.java
A src/org/exist/xpath/TypeTest.java
A src/org/exist/xpath/FunKeywordMatchAny.java
A src/org/exist/xpath/Function.java
A src/org/exist/xpath/FunStartsWith.java
A src/org/exist/xpath/FunContains.java
A src/org/exist/xpath/Union.java
A src/org/exist/xpath/FunSubstring.java
A src/org/exist/xpath/FunFloor.java
A src/org/exist/Backup.java
A src/org/exist/Server.java
A src/org/exist/EXistException.java
A src/org/exist/InteractiveClient.java
A src/org/exist/parser/XPathParser.g
A src/org/exist/xmldb2.xsl
A src/org/exist/exist.xsl
A src/org/exist/DatabaseAdminServlet.java
A src/org/exist/soap/QueryServiceLocator.java
A src/org/exist/soap/AdminSoapBindingSkeleton.java
A src/org/exist/soap/deploy.wsdd
A src/org/exist/soap/undeploy.wsdd
A src/org/exist/soap/admin.wsdl
A src/org/exist/soap/QuerySoapBindingStub.java
A src/org/exist/soap/QueryResponseDocument.java
A src/org/exist/soap/QueryResponse.java
A src/org/exist/soap/QueryService.java
A src/org/exist/soap/Admin.java
A src/org/exist/soap/AdminSoapBindingImpl.java
A src/org/exist/soap/QuerySoapBindingSkeleton.java
A src/org/exist/soap/Collection.java
A src/org/exist/soap/query.wsdl
A src/org/exist/soap/AdminServiceLocator.java
A src/org/exist/soap/QueryResponseCollection.java
A src/org/exist/soap/AdminSoapBindingStub.java
A src/org/exist/soap/Query.java
A src/org/exist/soap/QuerySoapBindingImpl.java
A src/org/exist/soap/Sessions.java
A src/org/exist/soap/AdminService.java
A src/org/exist/GetServlet.java
A src/org/exist/ServletTest.java
A src/org/exist/storage/ElementIndex.java
A src/org/exist/storage/BFile.java
A src/org/exist/storage/NativeTextEngine.java
A src/org/exist/storage/ElementPool.java
A src/org/exist/storage/Signatures.java
A src/org/exist/storage/DOMTransaction.java
A src/org/exist/storage/RelationalTextEngine.java
A src/org/exist/storage/DBWrapper.java
A src/org/exist/storage/NativeElementIndex.java
A src/org/exist/storage/DBBroker.java
A src/org/exist/storage/NativeBroker.java
A src/org/exist/storage/ByteBuffer.java
A src/org/exist/storage/BFileCallback.java
A src/org/exist/storage/RelationalBroker.java
A src/org/exist/storage/DBConnectionPool.java
A src/org/exist/storage/TextSearchEngine.java
A src/org/exist/storage/ObjectPool.java
A src/org/exist/storage/analysis/SimpleTokenizer.java
A src/org/exist/storage/analysis/TextToken.java
A
src/org/exist/storage/analysis/StandardTokenizerTokenManager.java
A src/org/exist/storage/analysis/StandardTokenizerConstants.java
A src/org/exist/storage/analysis/ParseException.java
A src/org/exist/storage/analysis/Tokenizer.java
A src/org/exist/storage/analysis/StandardTokenizer.java
A src/org/exist/storage/analysis/StandardTokenizer.jj
A src/org/exist/storage/analysis/Token.java
A src/org/exist/storage/analysis/TokenMgrError.java
A src/org/exist/storage/analysis/SimpleCharStream.java
A src/org/exist/storage/PostgresqlWrapper.java
A src/org/exist/storage/WordTokenizer.java
A src/org/exist/storage/OracleWrapper.java
A src/org/exist/storage/MysqlWrapper.java
A src/org/exist/storage/IndexPaths.java
A src/org/exist/storage/PgElementIndex.java
A src/org/exist/storage/TableInsert.java
A src/org/exist/storage/BrokerFactory.java
A src/org/exist/storage/serializers/Serializer.java
A src/org/exist/storage/serializers/NativeSerializer.java
A src/org/exist/storage/serializers/PostgresSerializer.java
A src/org/exist/storage/serializers/XIncludeFilter.java
A src/org/exist/storage/BrokerPool.java
A src/org/exist/storage/DOMFile.java
A src/org/exist/xmlrpc/RpcServlet.java
A src/org/exist/xmlrpc/RpcServer.java
A src/org/exist/xmlrpc/RpcAPI.java
A src/org/exist/xmlrpc/AuthenticatedHandler.java
A src/org/exist/xmldb/XMLResourceImpl.java
A src/org/exist/xmldb/CollectionManagementServiceImpl.java
A src/org/exist/xmldb/UserManagementService.java
A src/org/exist/xmldb/test/ResourceTest.java
A src/org/exist/xmldb/test/XPathQueryTest.java
A src/org/exist/xmldb/test/AllTests.java
A src/org/exist/xmldb/test/CreateCollectionsTest.java
A src/org/exist/xmldb/LocalDatabaseInstanceManager.java
A src/org/exist/xmldb/DatabaseInstanceManagerImpl.java
A src/org/exist/xmldb/LocalCollection.java
A src/org/exist/xmldb/LocalXPathQueryService.java
A src/org/exist/xmldb/LocalUserManagementService.java
A src/org/exist/xmldb/RemoteXPathQueryService.java
A src/org/exist/xmldb/XPathQueryServiceImpl.java
A src/org/exist/xmldb/CollectionImpl.java
A src/org/exist/xmldb/UserManagementServiceImpl.java
A src/org/exist/xmldb/LocalResourceSet.java
A src/org/exist/xmldb/LocalXMLResource.java
A src/org/exist/xmldb/ResourceIteratorImpl.java
A src/org/exist/xmldb/LocalCollectionManagementService.java
A src/org/exist/xmldb/DatabaseInstanceManager.java
A src/org/exist/xmldb/ResourceSetImpl.java
A src/org/exist/xmldb/DatabaseImpl.java
A src/org/exist/security/MD5.java
A src/org/exist/security/Permission.java
A src/org/exist/security/User.java
A src/org/exist/security/PermissionDeniedException.java
A src/org/exist/security/SecurityManager.java
A src/CatalogManager.properties
A build.properties
A thirdparty/jboss/src/samples/XmlDbClientServiceMBean.java
A thirdparty/jboss/src/samples/XmlDbClientService.java
A thirdparty/jboss/src/org/exist/jboss/XmlDbService.java
A thirdparty/jboss/src/org/exist/jboss/XmlDbServiceMBean.java
A thirdparty/jboss/src/org/exist/jboss/exist/EXistService.java
A
thirdparty/jboss/src/org/exist/jboss/exist/EXistServiceMBean.java
A thirdparty/jboss/README
A thirdparty/jboss/build.xml
A thirdparty/jboss/conf/samples/jboss-service.xml
A thirdparty/jboss/conf/eXist/jboss-service.xml
A README
A QuickStart.html
A build.xml
A Jetty-4.1.4/bin/orgConvert.sh
A Jetty-4.1.4/bin/generateJavaDoc
A Jetty-4.1.4/bin/jetty.bat
A Jetty-4.1.4/bin/rant
A Jetty-4.1.4/bin/jetty.sysvinit
A Jetty-4.1.4/bin/release-jetty.sh
A Jetty-4.1.4/bin/jetty.sh
A Jetty-4.1.4/bin/jettyw98.bat
A Jetty-4.1.4/cgi-bin/env.sh
A Jetty-4.1.4/cgi-bin/redirect.sh
A Jetty-4.1.4/start.jar
A Jetty-4.1.4/README.TXT
A Jetty-4.1.4/etc/.cvsignore
A Jetty-4.1.4/etc/jdbcRealm.properties
A Jetty-4.1.4/etc/webdefault.xml
A Jetty-4.1.4/etc/stresstest.xml
A Jetty-4.1.4/etc/demo.xml
A Jetty-4.1.4/etc/demo.mlet
A Jetty-4.1.4/etc/nio.xml
A Jetty-4.1.4/etc/nbio.xml
A Jetty-4.1.4/etc/adminRealmproperties
A Jetty-4.1.4/etc/admin.xml
A Jetty-4.1.4/etc/htgroup
A Jetty-4.1.4/etc/examplesRealm.properties
A Jetty-4.1.4/etc/LICENSE.javax.servlet.txt
A Jetty-4.1.4/etc/j2me.xml
A Jetty-4.1.4/etc/LICENSE.javax.xml.html
A Jetty-4.1.4/etc/jetty.policy
A Jetty-4.1.4/etc/LICENSE.jmx.txt
A Jetty-4.1.4/etc/htaccess
A Jetty-4.1.4/etc/htpasswd
A Jetty-4.1.4/etc/jetty.xml
A Jetty-4.1.4/etc/watchdog.xml
A Jetty-4.1.4/etc/stresstestRealm.properties
A Jetty-4.1.4/etc/demoRealm.properties
A Jetty-4.1.4/etc/LICENSE.jsse.txt
A Jetty-4.1.4/etc/adminRealm.properties
A Jetty-4.1.4/etc/package-list
A Jetty-4.1.4/etc/jettydemo.p12
A Jetty-4.1.4/etc/demokeystore
A Jetty-4.1.4/.cvsignore
A Jetty-4.1.4/build.xml
A Jetty-4.1.4/ext/com.sun.net.ssl.jar
A Jetty-4.1.4/webapps/root/WEB-INF/web.xml
A Jetty-4.1.4/webapps/root/index.html
A Jetty-4.1.4/webapps/root/.cvsignore
A Jetty-4.1.4/VERSION.TXT
A Jetty-4.1.4/LICENSE.html
A Jetty-4.1.4/lib/org.mortbay.jetty-jdk1.2.jar
A Jetty-4.1.4/lib/org.mortbay.jmx.jar
A Jetty-4.1.4/lib/.cvsignore
A samples/LocalGet.java
A samples/biblio.rdf
A samples/catalog
A samples/shakespeare/.test.xml.swp
A samples/shakespeare/hamlet.xml
A samples/shakespeare/r_and_j.xml
A samples/shakespeare/test.xml
A samples/shakespeare/play.dtd
A samples/shakespeare/macbeth.xml
A samples/shakespeare/shakes.xsl
A samples/xinclude/sidebar.xml
A samples/xinclude/xinclude.xml
A samples/xinclude/disclaimer.xml
A samples/play.dtd
A samples/xcatalog.xml
A samples/soap/getdoc.pl
A samples/soap/query.pl
A samples/soap/QueryExample.java
A samples/soap/Client.cs
A samples/soap/store.pl
A samples/soap/remove.pl
A samples/soap/QueryService.cs
A samples/soap/SoapQuery.cs
A samples/soap/AdminService.cs
A samples/soap/QueryForm.cs
A samples/xmlrpc/Search.java
A samples/xmlrpc/Store.java
A samples/xmlrpc/Get.java
A samples/xmldb/NestedQuery.java
A samples/xmldb/APIGet.java
A samples/xmldb/APISearch.java
A samples/xmldb/APIParse.java
A samples/xmldb/APIParseDOM.java
A build.bat
A lib/optional/logkit-20020529.jar
A lib/optional/clutil.jar
A lib/optional/commons-JXPath-20020320.jar
A lib/optional/commons-logging.jar
A lib/optional/jakarta-regexp-1.2.jar
A lib/optional/axis.jar
A lib/optional/ant-optional.jar
A lib/optional/wsdl4j.jar
A lib/optional/bsf-2.2.jar
A lib/optional/jstyle.jar
A lib/optional/maybeupload_1-0-5pre3.jar
A lib/optional/avalon-framework-20020627.jar
A lib/optional/avalon-excalibur-vm12-20020705.jar
A lib/optional/cocoon-2.0.3.jar
A lib/optional/saaj.jar
A lib/optional/commons-discovery.jar
A lib/optional/commons-httpclient-20020423.jar
A lib/optional/tt-bytecode.jar
A lib/optional/commons-collections-1.0.jar
A lib/optional/axis-ant.jar
A lib/optional/jaxrpc.jar
A lib/core/mysql.jar
A lib/core/xmldb.jar
A lib/core/jakarta-oro-2.0.6.jar
A lib/core/xercesImpl.jar
A lib/core/excalibur-cli-1.0.jar
A lib/core/log4j.jar
A lib/core/antlr.jar
A lib/core/ant.jar
A lib/core/resolver-20020130.jar
A lib/core/junit.jar
A lib/core/libreadline-java.jar
A lib/core/xml-apis.jar
A lib/core/javax.servlet.jar
A lib/core/trove.jar
A lib/core/xalan-2.3.1.jar
A lib/core/xmlrpc-1.1.jar
A exist.jar
A bin/startup.sh
A bin/server.bat
A bin/antRun.bat
A bin/rpclite.pl
A bin/run.sh
A bin/server.sh
A bin/xmlrpc.pl
A bin/shutdown.bat
A bin/ant
A bin/client.bat
A bin/shutdown.sh
A bin/ant.bat
A bin/client.sh
A bin/query.py
A bin/cpappend.bat
A bin/exist.bat
A bin/startup.bat
A bin/antRun
A bin/run.bat
A build.sh
A client.properties
A default.css
A org.mortbay.jetty.jar
fatal: Not a valid object name
ls-tree -z ./webapp/api/: command returned error: 128
--
Adam Retter
eXist Developer
{ United Kingdom }
adam@exist-db.org
irc://irc.freenode.net/existdb
^ permalink raw reply
* Re: rebase: strange failures to apply patc 3-way
From: Max Horn @ 2013-03-11 22:20 UTC (permalink / raw)
To: Andrew Wong; +Cc: git@vger.kernel.org
In-Reply-To: <CADgNjanBm5bj7_jY5WrUXUENr7r6zMxve822OYKcyBpWGZv-SA@mail.gmail.com>
On 11.03.2013, at 22:34, Andrew Wong wrote:
> On 3/11/13, Max Horn <max@quendi.de> wrote:
>> So I tried this:
>>
>> git rebase branches/stable-4.6 # ... which leads to the error
>> git ls-files -m
>>
>> but got nothing. Perhaps you had something else in mind, though, but I am
>> not quite sure what... sorry for being dense, but if you let me know what
>> exactly you meant, I'll be happy to try that. As for the stat command:
>
> I'm still digesting the information form the email. Just want to
> quickly mention that the "ls-files" command should be:
> $ git ls-files --debug file1 file2
>
> You should always get output. It prints out stat-like information for
> files in the index.
Aha, I see. I inserted that into git-am, once right before git-merge-recursive and once right after it (just before a call to rerere).
This is what I got;
Applying: COMMIT X
error: BAD-FILE: does not match index
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
GOOD-FILE
ctime: 1362921639:0
mtime: 1362921639:0
dev: 234881028 ino: 18665879
uid: 502 gid: 20
size: 25429 flags: 0
BAD-FILE
ctime: 1363040264:0
mtime: 1363040264:0
dev: 234881028 ino: 19170773
uid: 502 gid: 20
size: 52906 flags: 0
error: Your local changes to the following files would be overwritten by merge:
BAD-FILE
Please, commit your changes or stash them before you can merge.
Aborting
GOOD-FILE
ctime: 1362921639:0
mtime: 1362921639:0
dev: 234881028 ino: 18665879
uid: 502 gid: 20
size: 25429 flags: 0
BAD-FILE
ctime: 1363040264:0
mtime: 1363040264:0
dev: 234881028 ino: 19170773
uid: 502 gid: 20
size: 52906 flags: 0
Failed to merge in the changes.
Patch failed at 0015 COMMIT X
...
So the ctime/mtine for the BAD-FILE do not differ.
After this, I also run "ls-files" on the command line, and got:
GOOD-FILE gd
ctime: 1362921639:0
mtime: 1362921639:0
dev: 234881028 ino: 18665879
uid: 502 gid: 20
size: 25429 flags: 0
BAD-FILE
ctime: 1363040266:0
mtime: 1363040264:0
dev: 234881028 ino: 19170773
uid: 502 gid: 20
size: 52906 flags: 0
So now the ctime of the bad file is more recent than the mtime.
Max
^ permalink raw reply
* What's cooking in git.git (Mar 2013, #03; Mon, 11)
From: Junio C Hamano @ 2013-03-11 22:23 UTC (permalink / raw)
To: git
Here are the topics that have been cooking. Commits prefixed with
'-' are only in 'pu' (proposed updates) while commits prefixed with
'+' are in 'next'.
The final will be tagged in a few days; we have enough material for
post 1.8.2 cycle already, and it will be a busy few weeks towards
the end of the month once the dust settles.
You can find the changes described here in the integration branches of the
repositories listed at
http://git-blame.blogspot.com/p/git-public-repositories.html
--------------------------------------------------
[Graduated to "master"]
* gp/add-u-A-documentation (2013-03-07) 1 commit
(merged to 'next' on 2013-03-08 at d86f8b3)
+ add: Clarify documentation of -A and -u
(this branch is used by jc/add-2.0-delete-default and jc/add-2.0-u-A-sans-pathspec.)
--------------------------------------------------
[New Topics]
* jc/maint-push-refspec-default-doc (2013-03-08) 1 commit
- Documentation/git-push: clarify the description of defaults
Clarify in the documentation "what" gets pushed to "where" when the
command line to "git push" does not say these explicitly.
Needs proofreading.
* jc/reflog-reverse-walk (2013-03-08) 3 commits
- reflog: add for_each_reflog_ent_reverse() API
- for_each_recent_reflog_ent(): simplify opening of a reflog file
- for_each_reflog_ent(): extract a helper to process a single entry
An internal function used to implementate "git checkout @{-1}" was
hard to use correctly.
* jk/alias-in-bare (2013-03-08) 3 commits
(merged to 'next' on 2013-03-09 at 2f9d72a)
+ setup: suppress implicit "." work-tree for bare repos
+ environment: add GIT_PREFIX to local_repo_env
+ cache.h: drop LOCAL_REPO_ENV_SIZE
An aliased command spawned from a bare repository that does not say
it is bare with "core.bare = yes" is treated as non-bare by mistake.
Will cook in 'next'.
* pw/p4-symlinked-root (2013-03-11) 3 commits
- git p4: avoid expanding client paths in chdir
- git p4 test: should honor symlink in p4 client root
- git p4 test: make sure P4CONFIG relative path works
Will merge to 'next'.
* jc/add-2.0-delete-default (2013-03-08) 3 commits
- git add <pathspec>... defaults to "-A"
- git add: start preparing for "git add <pathspec>..." to default to "-A"
- builtin/add.c: simplify boolean variables
"git add dir/" updated modified files and added new files, but does
not notice removed files, which may be "Huh?" to some users. They
can of course use "git add -A dir/", but why should they?
There seemed to be some interest in this topic, so resurrected and
rebased on top of recent documentation updates to propose a
possible transition plan.
* jc/add-2.0-u-A-sans-pathspec (2013-03-11) 1 commit
- git add: -u/-A now affects the entire working tree
"git add -u/-A" without pathspec has traditonally limited its
operation to the current directory and its subdirectories, but in
Git 1.8.2 we started encouraging users to be more explicit to
specify "." when they mean it (and use ":/" to make it affect the
entire working tree). With this, we finally change the behaviour
and make it affect the entire working tree in Git 2.0.
* jk/empty-archive (2013-03-10) 2 commits
- archive: handle commits with an empty tree
- test-lib: factor out $GIT_UNZIP setup
"git archive" reports a failure when asked to create an archive out
of an empty tree. It would be more intuitive to give an empty
archive back in such a case.
Will merge to 'next'.
* kb/p4merge (2013-03-09) 3 commits
- git-merge-one-file: revise merge error reporting
- mergetools/p4merge: create a base if none available
- mergetools/p4merge: swap LOCAL and REMOTE
Expecting a reroll.
--------------------------------------------------
[Stalled]
* mb/gitweb-highlight-link-target (2012-12-20) 1 commit
- Highlight the link target line in Gitweb using CSS
Expecting a reroll.
$gmane/211935
* mb/remote-default-nn-origin (2012-07-11) 6 commits
- Teach get_default_remote to respect remote.default.
- Test that plain "git fetch" uses remote.default when on a detached HEAD.
- Teach clone to set remote.default.
- Teach "git remote" about remote.default.
- Teach remote.c about the remote.default configuration setting.
- Rename remote.c's default_remote_name static variables.
When the user does not specify what remote to interact with, we
often attempt to use 'origin'. This can now be customized via a
configuration variable.
Expecting a reroll.
$gmane/210151
"The first remote becomes the default" bit is better done as a
separate step.
--------------------------------------------------
[Cooking]
* po/help-guides (2013-03-03) 5 commits
- help doc: include --guide option description
- help.c: add list_common_guides_help() function
- help.c: add --guide option
- help.c: use OPT_COUNTUP
- show 'git help <guide>' usage, with examples
Give more visibility to "concept guides" to help "git help" users.
Expecting a reroll.
$gmane/217384
* jk/graph-c-expose-symbols-for-cgit (2013-03-03) 1 commit
(merged to 'next' on 2013-03-04 at be35b12)
+ Revert "graph.c: mark private file-scope symbols as static"
In the v1.8.0 era, we changed symbols that do not have to be global
to file scope static, but a few functions in graph.c were used by
CGit from sideways bypassing the entry points of the API the
in-tree users use.
Will cook in 'next'.
* we/submodule-update-prefix-output (2013-03-03) 1 commit
(merged to 'next' on 2013-03-04 at 908df73)
+ submodule update: when using recursion, show full path
Will cook in 'next'.
* jc/nobody-sets-src-peer-ref (2013-03-04) 1 commit
(merged to 'next' on 2013-03-07 at 1910e21)
+ match_push_refs(): nobody sets src->peer_ref anymore
Dead code removal.
Will cook in 'next'.
* jc/push-follow-tag (2013-03-05) 4 commits
(merged to 'next' on 2013-03-09 at 748fbed)
+ push: --follow-tags
+ commit.c: use clear_commit_marks_many() in in_merge_bases_many()
+ commit.c: add in_merge_bases_many()
+ commit.c: add clear_commit_marks_many()
The new "--follow-tags" option tells "git push" to push relevant
tags when pushing branches out.
Will cook in 'next'.
* jc/maint-reflog-expire-clean-mark-typofix (2013-03-05) 1 commit
(merged to 'next' on 2013-03-07 at 0a61cbb)
+ reflog: fix typo in "reflog expire" clean-up codepath
Will cook in 'next'.
* aw/setup-prefix-pathspec (2013-03-09) 2 commits
- setup.c: check that the pathspec magic ends with ")"
- setup.c: stop prefix_pathspec() from looping past the end of string
Will merge to 'next'.
* lf/bundle-verify-list-prereqs (2013-03-08) 2 commits
(merged to 'next' on 2013-03-08 at 9e55d6d)
+ bundle: Add colons to list headings in "verify"
+ bundle: Fix "verify" output if history is complete
Will cook in 'next'.
* ks/rfc2047-one-char-at-a-time (2013-03-09) 1 commit
(merged to 'next' on 2013-03-09 at a12465e)
+ format-patch: RFC 2047 says multi-octet character may not be split
When "format-patch" quoted a non-ascii strings on the header files,
it incorrectly applied rfc2047 and chopped a single character in
the middle of it.
Will cook in 'next'.
* kb/name-hash (2013-02-27) 1 commit
(merged to 'next' on 2013-03-05 at 7f7e5d4)
+ name-hash.c: fix endless loop with core.ignorecase=true
The code to keep track of what directory names are known to Git on
platforms with case insensitive filesystems can get confused upon
a hash collision between these pathnames and looped forever.
Will cook in 'next'.
* rs/zip-compresssed-size-with-export-subst (2013-02-27) 1 commit
(merged to 'next' on 2013-03-03 at c1ac6d8)
+ archive-zip: fix compressed size for stored export-subst files
When export-subst is used, "zip" output recorded incorrect
size of the file.
Will cook in 'next'.
* hv/config-from-strbuf (2013-03-10) 4 commits
- teach config parsing to read from strbuf
- config: make parsing stack struct independent from actual data source
- config: drop file pointer validity check in get_next_char()
- config: factor out config file stack management
Rerolled.
* jc/describe (2013-02-28) 1 commit
(merged to 'next' on 2013-03-05 at 6b353f3)
+ describe: --match=<pattern> must limit the refs even when used with --all
The "--match=<pattern>" option of "git describe", when used with
"--all" to allow refs that are not annotated tags to be used as a
base of description, did not restrict the output from the command
to those that match the given pattern.
We may want to have a looser matching that does not restrict to tags,
but that can be done as a follow-up topic; this step is purely a bugfix.
Will cook in 'next'.
* jk/mailsplit-maildir-muttsort (2013-03-02) 1 commit
(merged to 'next' on 2013-03-03 at d5f7735)
+ mailsplit: sort maildir filenames more cleverly
Will cook in 'next'.
* pc/subtree-add-before-fetch (2013-02-28) 1 commit
- contrib/subtree: allow addition of remote branch with name not locally present
Comments?
* tr/line-log (2013-02-28) 5 commits
- log -L: :pattern:file syntax to find by funcname
- Implement line-history search (git log -L)
- Export rewrite_parents() for 'log -L'
- blame: introduce $ as "end of file" in -L syntax
- Refactor parse_loc
* jc/perl-cat-blob (2013-02-22) 1 commit
(merged to 'next' on 2013-02-25 at 7c0079a)
+ Git.pm: fix cat_blob crashes on large files
perl/Git.pm::cat_blob slurped everything in core only to write it
out to a file descriptor, which was not a very smart thing to do.
Will cook in 'next'.
* nd/doc-index-format (2013-02-23) 3 commits
(merged to 'next' on 2013-02-26 at 4d3caea)
+ update-index: list supported idx versions and their features
+ read-cache.c: use INDEX_FORMAT_{LB,UB} in verify_hdr()
+ index-format.txt: mention of v4 is missing in some places
Update the index format documentation to mention the v4 format.
Will cook in 'next'.
* ap/maint-diff-rename-avoid-overlap (2013-03-06) 3 commits
(merged to 'next' on 2013-03-06 at 3bc8dda)
+ tests: make sure rename pretty print works
(merged to 'next' on 2013-02-26 at 19d70bf)
+ diff: prevent pprint_rename from underrunning input
(merged to 'next' on 2013-02-25 at c9bd6d3)
+ diff: Fix rename pretty-print when suffix and prefix overlap
The logic used by "git diff -M --stat" to shorten the names of
files before and after a rename did not work correctly when the
common prefix and suffix between the two filenames overlapped.
Will cook in 'next'.
* ap/maint-update-index-h-is-for-help (2013-02-23) 1 commit
(merged to 'next' on 2013-02-25 at f5f767c)
+ update-index: allow "-h" to also display options
Will cook in 'next'.
* jc/color-diff-doc (2013-02-22) 1 commit
(merged to 'next' on 2013-02-25 at c37541c)
+ diff-options: unconfuse description of --color
Will cook in 'next'.
* nd/branch-error-cases (2013-02-23) 1 commit
(merged to 'next' on 2013-02-25 at 1d0289f)
+ branch: segfault fixes and validation
"git branch" had more cases where it did not bother to check
nonsense command line parameters.
Will cook in 'next'.
* rt/commit-cleanup-config (2013-02-23) 1 commit
(merged to 'next' on 2013-02-25 at 8249b61)
+ t7502: perform commits using alternate editor in a subshell
Fix tests that contaminated their environments and affected new
tests introduced later in the sequence by containing their effects
in their own subshells.
Will cook in 'next'.
* wk/doc-pre-rebase (2013-02-24) 1 commit
(merged to 'next' on 2013-02-25 at a6ec310)
+ Documentation/githooks: Explain pre-rebase parameters
Will cook in 'next'.
* da/downcase-u-in-usage (2013-02-24) 20 commits
(merged to 'next' on 2013-02-26 at 977b67e)
+ contrib/mw-to-git/t/install-wiki.sh: use a lowercase "usage:" string
+ contrib/examples/git-remote.perl: use a lowercase "usage:" string
+ tests: use a lowercase "usage:" string
+ git-svn: use a lowercase "usage:" string
+ Documentation/user-manual.txt: use a lowercase "usage:" string
+ templates/hooks--update.sample: use a lowercase "usage:" string
+ contrib/hooks/setgitperms.perl: use a lowercase "usage:" string
+ contrib/examples: use a lowercase "usage:" string
+ contrib/fast-import/import-zips.py: use spaces instead of tabs
+ contrib/fast-import/import-zips.py: fix broken error message
+ contrib/fast-import: use a lowercase "usage:" string
+ contrib/credential: use a lowercase "usage:" string
+ git-cvsimport: use a lowercase "usage:" string
+ git-cvsimport: use a lowercase "usage:" string
+ git-cvsexportcommit: use a lowercase "usage:" string
+ git-archimport: use a lowercase "usage:" string
+ git-merge-one-file: use a lowercase "usage:" string
+ git-relink: use a lowercase "usage:" string
+ git-svn: use a lowercase "usage:" string
+ git-sh-setup: use a lowercase "usage:" string
Will cook in 'next'.
* dm/ni-maxhost-may-be-missing (2013-02-25) 1 commit
(merged to 'next' on 2013-02-26 at 93ec2c9)
+ git-compat-util.h: Provide missing netdb.h definitions
Will cook in 'next'.
* gp/avoid-explicit-mention-of-dot-git-refs (2013-02-24) 1 commit
(merged to 'next' on 2013-02-26 at ec42d98)
+ Fix ".git/refs" stragglers
Will cook in 'next'.
* gp/describe-match-uses-glob-pattern (2013-02-24) 1 commit
(merged to 'next' on 2013-02-26 at c9cc789)
+ describe: Document --match pattern format
(this branch is used by gp/forbid-describe-all-match.)
Will cook in 'next'.
* gp/forbid-describe-all-match (2013-02-24) 1 commit
- describe: make --all and --match=PATTERN mutually incompatible
(this branch uses gp/describe-match-uses-glob-pattern.)
"describe --match=<pattern> --all <commit>" ought to mean "use refs
that match <pattern> to describe <commit>; you do not have to limit
yourself to annotated tags." But it doesn't. Disable the
combination.
We may want to discard this if jc/describe topic turns out to be a
better idea.
* jk/common-make-variables-export-safety (2013-02-25) 1 commit
(merged to 'next' on 2013-03-05 at 084ae43)
+ Makefile: make mandir, htmldir and infodir absolute
Make the three variables safer to be exported to submakes by
ensuring that they are full paths so that they can be used as
installation location.
Will cook in 'next'.
* jk/suppress-clang-warning (2013-02-25) 1 commit
- fix clang -Wtautological-compare with unsigned enum
* mg/qnx6 (2013-02-25) 1 commit
- QNX: newer QNX 6.x.x is not so crippled
Still under discussion.
Not ready for inclusion.
* mg/unsigned-time-t (2013-02-25) 2 commits
- Fix time offset calculation in case of unsigned time_t
- date.c: fix unsigned time_t comparison
A few workarounds for systems with unsigned time_t.
* rj/msvc-build (2013-02-25) 5 commits
(merged to 'next' on 2013-02-26 at 7493068)
+ msvc: avoid collisions between "tags" and "TAGS"
+ msvc: test-svn-fe: Fix linker "unresolved external" error
+ msvc: Fix build by adding missing symbol defines
+ msvc: git-daemon: Fix linker "unresolved external" errors
+ msvc: Fix compilation errors caused by poll.h emulation
Will cook in 'next'.
* wk/user-manual-literal-format (2013-02-25) 1 commit
(merged to 'next' on 2013-02-26 at d59ce38)
+ user-manual: Standardize backtick quoting
Will cook in 'next'.
* jk/utf-8-can-be-spelled-differently (2013-02-25) 1 commit
(merged to 'next' on 2013-02-26 at c079525)
+ utf8: accept alternate spellings of UTF-8
Will cook in 'next'.
* jk/pkt-line-cleanup (2013-02-24) 19 commits
(merged to 'next' on 2013-02-25 at d83e970)
+ remote-curl: always parse incoming refs
+ remote-curl: move ref-parsing code up in file
+ remote-curl: pass buffer straight to get_remote_heads
+ teach get_remote_heads to read from a memory buffer
+ pkt-line: share buffer/descriptor reading implementation
+ pkt-line: provide a LARGE_PACKET_MAX static buffer
+ pkt-line: move LARGE_PACKET_MAX definition from sideband
+ pkt-line: teach packet_read_line to chomp newlines
+ pkt-line: provide a generic reading function with options
+ pkt-line: drop safe_write function
+ pkt-line: move a misplaced comment
+ write_or_die: raise SIGPIPE when we get EPIPE
+ upload-archive: use argv_array to store client arguments
+ upload-archive: do not copy repo name
+ send-pack: prefer prefixcmp over memcmp in receive_status
+ fetch-pack: fix out-of-bounds buffer offset in get_ack
+ upload-pack: remove packet debugging harness
+ upload-pack: do not add duplicate objects to shallow list
+ upload-pack: use get_sha1_hex to parse "shallow" lines
Cleans up pkt-line API, implementation and its callers to make
them more robust.
Will cook in 'next'.
* ob/imap-send-ssl-verify (2013-02-20) 1 commit
(merged to 'next' on 2013-02-25 at e897609)
+ imap-send: support Server Name Indication (RFC4366)
Correctly connect to SSL/TLS sites that serve multiple hostnames on
a single IP by including Server Name Indication in the client-hello.
Will cook in 'next'.
* jc/format-patch (2013-02-21) 2 commits
- format-patch: --inline-single
- format-patch: rename "no_inline" field
A new option to send a single patch to the standard output to be
appended at the bottom of a message. I personally have no need for
this, but it was easy enough to cobble together. Tests, docs and
stripping out more MIMEy stuff are left as exercises to interested
parties.
Not ready for inclusion.
* tk/doc-filter-branch (2013-02-26) 2 commits
(merged to 'next' on 2013-02-26 at bd4638b)
+ Documentation: filter-branch env-filter example
+ git-filter-branch.txt: clarify ident variables usage
Will cook in 'next'.
* bc/commit-complete-lines-given-via-m-option (2013-02-19) 4 commits
(merged to 'next' on 2013-02-19 at cf622b7)
+ Documentation/git-commit.txt: rework the --cleanup section
+ git-commit: only append a newline to -m mesg if necessary
+ t7502: demonstrate breakage with a commit message with trailing newlines
+ t/t7502: compare entire commit message with what was expected
'git commit -m "$str"' when $str was already terminated with a LF
now avoids adding an extra LF to the message.
Will cook in 'next'.
* da/difftool-fixes (2013-02-21) 4 commits
(merged to 'next' on 2013-02-25 at 687db1f)
+ t7800: "defaults" is no longer a builtin tool name
+ t7800: modernize tests
+ t7800: update copyright notice
+ difftool: silence uninitialized variable warning
Minor maintenance updates to difftool, and updates to its tests.
Will cook in 'next'.
* nd/read-directory-recursive-optim (2013-02-17) 1 commit
(merged to 'next' on 2013-02-17 at 36ba9f4)
+ read_directory: avoid invoking exclude machinery on tracked files
"git status" has been optimized by taking advantage of the fact
that paths that are already known to the index do not have to be
checked against the .gitignore mechanism under some conditions.
Will cook in 'next'.
* mg/gpg-interface-using-status (2013-02-14) 5 commits
(merged to 'next' on 2013-02-26 at 93f0e72)
+ pretty: make %GK output the signing key for signed commits
+ pretty: parse the gpg status lines rather than the output
+ gpg_interface: allow to request status return
+ log-tree: rely upon the check in the gpg_interface
+ gpg-interface: check good signature in a reliable way
Call "gpg" using the right API when validating the signature on
tags.
Will cook in 'next'.
* jn/shell-disable-interactive (2013-03-09) 2 commits
- shell: new no-interactive-login command to print a custom message
- shell doc: emphasize purpose and security model
Rerolled.
* jc/fetch-raw-sha1 (2013-02-07) 4 commits
(merged to 'next' on 2013-02-14 at ffa3c65)
+ fetch: fetch objects by their exact SHA-1 object names
+ upload-pack: optionally allow fetching from the tips of hidden refs
+ fetch: use struct ref to represent refs to be fetched
+ parse_fetch_refspec(): clarify the codeflow a bit
Allows requests to fetch objects at any tip of refs (including
hidden ones). It seems that there may be use cases even outside
Gerrit (e.g. $gmane/215701).
Will cook in 'next'.
* mn/send-email-works-with-credential (2013-02-27) 6 commits
(merged to 'next' on 2013-02-27 at ee7ae0e)
+ git-send-email: use git credential to obtain password
+ Git.pm: add interface for git credential command
+ Git.pm: allow pipes to be closed prior to calling command_close_bidi_pipe
+ Git.pm: refactor command_close_bidi_pipe to use _cmd_close
+ Git.pm: fix example in command_close_bidi_pipe documentation
+ Git.pm: allow command_close_bidi_pipe to be called as method
Hooks the credential system to send-email.
Will cook in 'next'.
* nd/branch-show-rebase-bisect-state (2013-03-06) 4 commits
. branch: show more information when HEAD is detached
. status: show more info than "currently not on any branch"
. wt-status: move wt_status_get_state() out to wt_status_print()
. wt-status: split wt_status_state parsing function out
Kicked out of 'pu'; if the function to read reflog backwards,
introduced by jc/reflog-reverse-walk, turns out to be a good idea
to avoid mistaken use of the existing function, this topic can be
rerolled using the new function.
* nd/count-garbage (2013-02-15) 4 commits
(merged to 'next' on 2013-02-17 at b2af923)
+ count-objects: report how much disk space taken by garbage files
+ count-objects: report garbage files in pack directory too
+ sha1_file: reorder code in prepare_packed_git_one()
+ git-count-objects.txt: describe each line in -v output
Will cook in 'next'.
* tz/credential-authinfo (2013-02-25) 1 commit
(merged to 'next' on 2013-02-27 at 7a261cb)
+ Add contrib/credentials/netrc with GPG support
A new read-only credential helper (in contrib/) to interact with
the .netrc/.authinfo files. Hopefully mn/send-email-authinfo topic
can rebuild on top of something like this.
Will cook in 'next'.
* jl/submodule-deinit (2013-03-04) 1 commit
(merged to 'next' on 2013-03-05 at 097164e)
+ submodule: add 'deinit' command
There was no Porcelain way to say "I no longer am interested in
this submodule", once you express your interest in a submodule with
"submodule init". "submodule deinit" is the way to do so.
Will cook in 'next'.
* jc/remove-export-from-config-mak-in (2013-03-05) 3 commits
(merged to 'next' on 2013-03-05 at abaa3cb)
+ Fix `make install` when configured with autoconf
(merged to 'next' on 2013-02-12 at eb8af04)
+ Makefile: do not export mandir/htmldir/infodir
(merged to 'next' on 2013-02-07 at 33f7d4f)
+ config.mak.in: remove unused definitions
config.mak.in template had an "export" line to cause a few
common makefile variables to be exported; if they need to be
expoted for autoconf/configure users, they should also be exported
for people who write config.mak the same way. Move the "export" to
the main Makefile. Also, stop exporting mandir that used to be
exported (only) when config.mak.autogen was used. It would have
broken installation of manpages (but not other documentation
formats).
Will cook in 'next'.
* jc/remove-treesame-parent-in-simplify-merges (2013-01-17) 1 commit
(merged to 'next' on 2013-01-30 at b639b47)
+ simplify-merges: drop merge from irrelevant side branch
The --simplify-merges logic did not cull irrelevant parents from a
merge that is otherwise not interesting with respect to the paths
we are following.
This touches a fairly core part of the revision traversal
infrastructure; even though I think this change is correct, please
report immediately if you find any unintended side effect.
Will cook in 'next'.
* jc/push-2.0-default-to-simple (2013-01-16) 14 commits
(merged to 'next' on 2013-01-16 at 23f5df2)
+ t5570: do not assume the "matching" push is the default
+ t5551: do not assume the "matching" push is the default
+ t5550: do not assume the "matching" push is the default
(merged to 'next' on 2013-01-09 at 74c3498)
+ doc: push.default is no longer "matching"
+ push: switch default from "matching" to "simple"
+ t9401: do not assume the "matching" push is the default
+ t9400: do not assume the "matching" push is the default
+ t7406: do not assume the "matching" push is the default
+ t5531: do not assume the "matching" push is the default
+ t5519: do not assume the "matching" push is the default
+ t5517: do not assume the "matching" push is the default
+ t5516: do not assume the "matching" push is the default
+ t5505: do not assume the "matching" push is the default
+ t5404: do not assume the "matching" push is the default
Will cook in 'next' until Git 2.0.
* bc/append-signed-off-by (2013-02-23) 13 commits
(merged to 'next' on 2013-02-25 at 32f7ac2)
+ git-commit: populate the edit buffer with 2 blank lines before s-o-b
+ Unify appending signoff in format-patch, commit and sequencer
+ format-patch: update append_signoff prototype
+ t4014: more tests about appending s-o-b lines
+ sequencer.c: teach append_signoff to avoid adding a duplicate newline
+ sequencer.c: teach append_signoff how to detect duplicate s-o-b
+ sequencer.c: always separate "(cherry picked from" from commit body
+ sequencer.c: require a conforming footer to be preceded by a blank line
+ sequencer.c: recognize "(cherry picked from ..." as part of s-o-b footer
+ t/t3511: add some tests of 'cherry-pick -s' functionality
+ t/test-lib-functions.sh: allow to specify the tag name to test_commit
+ commit, cherry-pick -s: remove broken support for multiline rfc2822 fields
+ sequencer.c: rework search for start of footer to improve clarity
Will cook in 'next'.
^ permalink raw reply
* Re: rebase: strange failures to apply patc 3-way
From: Max Horn @ 2013-03-11 22:36 UTC (permalink / raw)
To: Andrew Wong; +Cc: git@vger.kernel.org
In-Reply-To: <CADgNja=QJpe2nmqKn9rR1os=zjjqK+dWA+ZLaJA4pgLG8tVgzg@mail.gmail.com>
On 11.03.2013, at 23:10, Andrew Wong wrote:
> On 3/11/13, Max Horn <max@quendi.de> wrote:
>> PS: Just as a side note, I should mention that I have done tons of rebases
>> on various repositories on this very machine: same hard drive, same file
>> system; the git version of course has changed over time, but as I already
>> described, I can reproduce the same issue with older git versions.
>
> What if you do a "git clone" from this repo to an entirely new repo? I
> wonder if the rebase issue still happens in the new repo...
The problem seems to be non-existent in a clone.
>
> Could you also post the .git/config file from the repo?
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = false
Other than that, it just contains some a [remote] section and several [branch] sections. None of these contains any fancy (i.e. the branch sections just say "remote = origin" and give the name of the remote branch).
Looking at the git config man page to check what each of my config settings does, I discovered "trustctime". And adding
trustctime = false
to .git/config made the rebase work, every single time. Huh.
Adding this to the fact that a clone works fine, I wonder if something *is* touching my files, but just in that directory. But what could it be? One nagging suspicion is the "file versioning" feature Apple introduced as part of Time Machine in OS X 10.7; it's kind of a "version control system for n00bs" for arbitrary documents. It has caused me some pain in the past.
But I just re-checked, and problematic repos is explicitly on the Time Machine exclusion list. I also used the "tmutil isexcluded FILES" to verify that the problematic files are really on the TM exclusion list. Finally, I moved the one of the repos subdirectory containing most of the problematic files, and then run "git checkout". In other instances, this sufficed to "disassociate" a file from an unwanted TM version history. But doing that had no effect here, i.e. also with the freshly regenerated files, the problems appear.
>
> If supported, git could actually make use of threading when doing
> "stat"... it should be disabled by default though, but you could try
> disabling it with this config:
> git config core.preloadindex false
>
> But I don't know why that'd only affect this one repo and not the
> others though...
>
This setting doesn't seem to have any effect on the issue at hand.
Cheers,
Max
^ permalink raw reply
* Re: [PATCH 2/2] shell: new no-interactive-login command to print a custom message
From: Jonathan Nieder @ 2013-03-11 22:48 UTC (permalink / raw)
To: Ramkumar Ramachandra
Cc: Ethan Reesor, git, Jeff King, Sitaram Chamarty, Junio C Hamano,
Greg Brockman
In-Reply-To: <CALkWK0kK3YCwkv26cxVf61yUd8WHmHDG+mFwb2VRwNF3k_40qA@mail.gmail.com>
Ramkumar Ramachandra wrote:
> Jonathan Nieder wrote:
>> * If the file ~/git-shell-commands/no-interactive-login exists,
>> run no-interactive-login to let the server say what it likes,
>> then hang up.
[...]
> If "no-interactive-login" doesn't have execute permissions, we'll get
> an error from here:
>
> fatal: cannot exec 'git-shell-commands/no-interactive-login': Permission denied
Yep. Intended.
Thanks for looking it over,
Jonathan
^ permalink raw reply
* Re: rebase: strange failures to apply patc 3-way
From: Andrew Wong @ 2013-03-11 22:54 UTC (permalink / raw)
To: Max Horn; +Cc: git@vger.kernel.org
In-Reply-To: <ED1442D4-C011-49F3-928C-0BE0280F7D42@quendi.de>
On 3/11/13, Max Horn <max@quendi.de> wrote:
> Looking at the git config man page to check what each of my config settings
> does, I discovered "trustctime". And adding
> trustctime = false
> to .git/config made the rebase work, every single time. Huh.
>
>
> Adding this to the fact that a clone works fine, I wonder if something *is*
> touching my files, but just in that directory. But what could it be? One
> nagging suspicion is the "file versioning" feature Apple introduced as part
> of Time Machine in OS X 10.7; it's kind of a "version control system for
> n00bs" for arbitrary documents. It has caused me some pain in the past.
>
> But I just re-checked, and problematic repos is explicitly on the Time
> Machine exclusion list. I also used the "tmutil isexcluded FILES" to verify
> that the problematic files are really on the TM exclusion list. Finally, I
> moved the one of the repos subdirectory containing most of the problematic
> files, and then run "git checkout". In other instances, this sufficed to
> "disassociate" a file from an unwanted TM version history. But doing that
> had no effect here, i.e. also with the freshly regenerated files, the
> problems appear.
Would you be able to turn off Time Machine completely and do a few
tests? If it does works, then it becomes a matter of fixing Time
Machine...
^ permalink raw reply
* Re: rebase: strange failures to apply patc 3-way
From: Max Horn @ 2013-03-12 0:15 UTC (permalink / raw)
To: Andrew Wong; +Cc: git@vger.kernel.org
In-Reply-To: <CADgNja=oyAVVNTAY-OG5U2gmoYGdpUGDVKvDb4EdD2Q+9KgDcw@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2648 bytes --]
On 11.03.2013, at 23:54, Andrew Wong wrote:
> On 3/11/13, Max Horn <max@quendi.de> wrote:
>> Looking at the git config man page to check what each of my config settings
>> does, I discovered "trustctime". And adding
>> trustctime = false
>> to .git/config made the rebase work, every single time. Huh.
>>
>>
>> Adding this to the fact that a clone works fine, I wonder if something *is*
>> touching my files, but just in that directory. But what could it be? One
>> nagging suspicion is the "file versioning" feature Apple introduced as part
>> of Time Machine in OS X 10.7; it's kind of a "version control system for
>> n00bs" for arbitrary documents. It has caused me some pain in the past.
>>
>> But I just re-checked, and problematic repos is explicitly on the Time
>> Machine exclusion list. I also used the "tmutil isexcluded FILES" to verify
>> that the problematic files are really on the TM exclusion list. Finally, I
>> moved the one of the repos subdirectory containing most of the problematic
>> files, and then run "git checkout". In other instances, this sufficed to
>> "disassociate" a file from an unwanted TM version history. But doing that
>> had no effect here, i.e. also with the freshly regenerated files, the
>> problems appear.
>
> Would you be able to turn off Time Machine completely and do a few
> tests? If it does works, then it becomes a matter of fixing Time
> Machine...
I did turn it off just now, but no effect. Then again, daemons like revisiond were still running...
One more thing: I used the "fs_usage" to monitor what process accessed what file during one of those failing "git rebase" runs. I then searched through this to determine which processes accessed the "bad" file in this time. The result where these processes (aggregated):
git
revisiond
fseventsd
git-merge-recursive
Note that Time Machine was not running, but revisiond is... from its manpage:
revisiond is the daemon that manages document revisions created by applications and system services.
There are no configurations to revisiond, and users should not run revisiond manually.
This is the process I am suspecting. Specifically, a fchflags call it makes (see that attached excerpt of the fs_usage output). I am not sure, but my guess would be that it sets SF_ARCHIVED on the file. Causing its ctime to wander... Yuck.
But I don't know how to control it... and I am not sure if I can just kill it. Hrm. I'll try to dig some more into it, perhaps I can somehow confirm that this is *really* the cause of the problems, and somehow prevent it.
Cheers,
Max
[-- Attachment #2: git-rebase-debug.txt --]
[-- Type: text/plain, Size: 6515 bytes --]
00:59:54.349156 lstat64 src/BAD_FILE 0.000050 git.623953
00:59:54.349160 open F=5 (R_____) src/BAD_FILE 0.000004 git.623953
00:59:54.350659 close F=5 0.000007 git.623953
00:59:54.371716 lstat64 src/BAD_FILE 0.000002 git.623955
00:59:54.429674 lstat64 src/BAD_FILE 0.000002 git.623959
00:59:54.600060 lstat64 src/BAD_FILE 0.000007 git.623959
00:59:54.600151 stat64 /Users/mhorn/the-path-to-my-repository/src/BAD_FILE 0.000006 revisiond.623963
00:59:54.600154 stat64 /Users/mhorn/the-path-to-my-repository/src 0.000003 revisiond.623963
00:59:54.600160 open F=7 (R_____) /Users/mhorn/the-path-to-my-repository/src/BAD_FILE 0.000006 revisiond.623963
00:59:54.600161 fstatfs64 F=7 0.000002 revisiond.623963
00:59:54.600163 close F=7 0.000002 revisiond.623963
00:59:54.600387 unlink src/BAD_FILE 0.000328 W git.623959
00:59:54.600429 open F=5 (_WC__E) src/BAD_FILE 0.000039 git.623959
00:59:54.602910 write F=5 B=0x4000 0.000040 git.623959
00:59:54.602932 write F=5 B=0x4000 0.000017 git.623959
00:59:54.602947 write F=5 B=0x4000 0.000011 git.623959
00:59:54.602958 write F=5 B=0x4000 0.000009 git.623959
00:59:54.602969 write F=5 B=0x4000 0.000009 git.623959
00:59:54.602977 write F=5 B=0x12f5 0.000007 git.623959
00:59:54.602983 fstat64 F=5 0.000004 git.623959
00:59:54.603032 close F=5 0.000049 git.623959
00:59:54.621731 lstat64 /Users/mhorn/the-path-to-my-repository/src/BAD_FILE 0.000004 fseventsd.1664
00:59:54.882870 lstat64 src/BAD_FILE 0.000002 git.623993
00:59:54.882872 open F=5 (R_____) src/BAD_FILE 0.000003 git.623993
00:59:54.883042 close F=5 0.000002 git.623993
00:59:55.021956 lstat64 src/BAD_FILE 0.000003 git.624027
00:59:55.021959 open F=4 (R_____) src/BAD_FILE 0.000003 git.624027
00:59:55.022138 close F=4 0.000003 git.624027
00:59:56.600440 open F=7 (R_____) /Users/mhorn/the-path-to-my-repository/src/BAD_FILE 0.000014 revisiond.623963
00:59:56.600442 fcntl F=7 <GETPATH> 0.000002 revisiond.623963
00:59:56.600445 close F=7 0.000004 revisiond.623963
00:59:56.600449 stat64 /Users/mhorn/the-path-to-my-repository/src/BAD_FILE 0.000004 revisiond.623963
00:59:56.600452 stat64 /Users/mhorn/the-path-to-my-repository/src 0.000003 revisiond.623963
00:59:56.600455 open F=7 (R_____) /Users/mhorn/the-path-to-my-repository/src/BAD_FILE 0.000004 revisiond.623963
00:59:56.600457 fstatfs64 F=7 0.000002 revisiond.623963
00:59:56.600459 close F=7 0.000002 revisiond.623963
00:59:56.600687 open F=7 (R_____) /Users/mhorn/the-path-to-my-repository/src/BAD_FILE 0.000006 revisiond.623963
00:59:56.600688 fstat64 F=7 0.000002 revisiond.623963
00:59:56.600698 fchflags F=7 <UNKNOWN> [garbled output removed] 0.000010 revisiond.623963
00:59:56.600701 close F=7 0.000003 revisiond.623963
00:59:56.624161 lstat64 /Users/mhorn/the-path-to-my-repository/src/BAD_FILE 0.000004 fseventsd.1664
00:59:56.981172 lstat64 src/BAD_FILE 0.000004 git.624517
00:59:57.015622 lstat64 src/BAD_FILE 0.000005 git.624527
00:59:57.118844 lstat64 src/BAD_FILE 0.000005 git-merge-recurs.624544
01:00:00.194634 lstat64 src/BAD_FILE 0.000002 git.624580
01:00:00.194637 open F=5 (R_____) src/BAD_FILE 0.000003 git.624580
01:00:00.194815 close F=5 0.000003 git.624580
^ permalink raw reply
* Re: rebase: strange failures to apply patc 3-way
From: Max Horn @ 2013-03-12 0:29 UTC (permalink / raw)
To: Andrew Wong; +Cc: git@vger.kernel.org
In-Reply-To: <CADgNja=oyAVVNTAY-OG5U2gmoYGdpUGDVKvDb4EdD2Q+9KgDcw@mail.gmail.com>
On 11.03.2013, at 23:54, Andrew Wong wrote:
> On 3/11/13, Max Horn <max@quendi.de> wrote:
>> Looking at the git config man page to check what each of my config settings
>> does, I discovered "trustctime". And adding
>> trustctime = false
>> to .git/config made the rebase work, every single time. Huh.
>>
>>
>> Adding this to the fact that a clone works fine, I wonder if something *is*
>> touching my files, but just in that directory. But what could it be? One
>> nagging suspicion is the "file versioning" feature Apple introduced as part
>> of Time Machine in OS X 10.7; it's kind of a "version control system for
>> n00bs" for arbitrary documents. It has caused me some pain in the past.
>>
>> But I just re-checked, and problematic repos is explicitly on the Time
>> Machine exclusion list. I also used the "tmutil isexcluded FILES" to verify
>> that the problematic files are really on the TM exclusion list. Finally, I
>> moved the one of the repos subdirectory containing most of the problematic
>> files, and then run "git checkout". In other instances, this sufficed to
>> "disassociate" a file from an unwanted TM version history. But doing that
>> had no effect here, i.e. also with the freshly regenerated files, the
>> problems appear.
>
> Would you be able to turn off Time Machine completely and do a few
> tests? If it does works, then it becomes a matter of fixing Time
> Machine...
>
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.revisiond.plist
-> this exits revisiond, and prevents launchd from respawning it. After that, the problem is gone, on several attempts. And once I reactivate revisions, the problem reoccurs.
So it seems pretty clear what the cause of this is. Now I still need to figure out why it affects that particular repository and not others. But at this point I guess it is safe to say that Apple's auto-crap-magic revisiond is the root of the problem, and git is purely a victim. So I'll stop spamming this list with this issue for now, and see if I can figure out a fix that is less invasive than turning off revisiond completely (which some application rely on, so disabling it may break them badly).
Andrew, thank you very much for your persistent guidance and help. I definitely owe you a beverage-of-your-choice ;-).
Cheers,
Max
^ permalink raw reply
* Re: rebase: strange failures to apply patc 3-way
From: John Szakmeister @ 2013-03-12 0:41 UTC (permalink / raw)
To: Max Horn; +Cc: Andrew Wong, git@vger.kernel.org
In-Reply-To: <A3AD5861-FE88-4D6E-B10A-B83F68BA6368@quendi.de>
On Mon, Mar 11, 2013 at 8:29 PM, Max Horn <max@quendi.de> wrote:
[snip]
>
> sudo launchctl unload /System/Library/LaunchDaemons/com.apple.revisiond.plist
>
> -> this exits revisiond, and prevents launchd from respawning it. After that, the problem is gone, on several attempts. And once I reactivate revisions, the problem reoccurs.
>
> So it seems pretty clear what the cause of this is. Now I still need to figure out why it affects that particular repository and not others. But at this point I guess it is safe to say that Apple's auto-crap-magic revisiond is the root of the problem, and git is purely a victim. So I'll stop spamming this list with this issue for now, and see if I can figure out a fix that is less invasive than turning off revisiond completely (which some application rely on, so disabling it may break them badly).
I just wanted to say thank you for spamming the list with this. I've
not upgraded to a new Mac OS X yet, but now I know I need to watch out
for this issue. I'm glad you were able to get to the bottom of it,
and I'd love to hear if you find a reasonable solution.
-John
^ permalink raw reply
* Re: [PATCH/RFC] Make help behaviour more consistent
From: Kevin Bracey @ 2013-03-11 18:51 UTC (permalink / raw)
To: git; +Cc: Junio C Hamano
In-Reply-To: <7v1ubmd4dt.fsf@alter.siamese.dyndns.org>
On 11/03/2013 05:03, Junio C Hamano wrote:
> Hmm, I feel more confused than convinced after reading the above
> three times. Perhaps that is because I am too used to the way how
> "git" potty itself behaves, especially the part that "git help git"
> is the way to ask "git" (the first token on the command line) to
> give me "help" about "git" (the second) itself.
But you are nowhere told that "git help" will give you information on
any topic other than Git commands. Starting from just typing "git", all
you are told is that you can type "git help <command>". Given that
information, you could at least logically deduce that "git help help"
will give you help on "git help". (Not that it would help anyway - even
git-help.txt doesn't say that you can specify anything other than a Git
command, like "git" or "cli". But sounds like Philip's already on there
case there).
If you can figure out "man git" for yourself (and if it's available -
Windows?) then from there you're explicitly told how to directly access
all the other docs using man itself, including gitrevisions(7), etc.
And having gotten to "man gitrevisions", I figured out that "git help
revisions" could get to the HTML equivalent. Not documented, but at
least fits the pattern, give or take a hyphen. But I never figured out
"git help git", until I read the source. Why do I need to add the extra
"git" to the help command for that page, and that page only? "git" isn't
a Git command, and there's no "man gitgit" topic! Even if I explicitly
try to point explicitly that I want a web page with "git help -w", I
don't get it...
I think at the very minimum you need to make it explicitly clear right
up front that "git help git" is available:
See 'git help git' for more information on Git
See 'git help <command>' for more information on a specific command.
Seems ugly though. I'm at a loss to understand why "git help", the
manual launching command, shouldn't by default simply launch the root of
the manual tree, rather than replicate the behaviour of "git"/"git --help".
And something needs to be done to advertise the general existence of
usage on commands. "-h" is currently hidden on page 4 of "man gitcli".
(Is it anywhere else?) I've managed to avoid finding out about it for
years! Checking a few people around me, none of them knew about it either.
At the minute "git" tells you about "git --help", which shows usage, but
"git add --help" launches the manual. (Huh?) Given that, I always
assumed there was no usage available for individual commands - if there
was usage, surely it would be there on --help, like on "git". Never
occurred to me it would be there under "-h" instead.
So how about going further than that patch, and making it even simpler.
Collapse --help and -h to be synonyms. Then under either spelling,
--help|-h always shows usage for "git" or "git <command>", as per GNU
guidelines.
Then the manual launch only happens for "git help ..." and, "git help"
on its own launches the root. And the output of "git [--help]" ends with:
See 'git help [<command>]' for more information.
Kevin
^ permalink raw reply
* Re: rebase: strange failures to apply patc 3-way
From: Jeff King @ 2013-03-12 1:01 UTC (permalink / raw)
To: Max Horn; +Cc: Andrew Wong, git@vger.kernel.org
In-Reply-To: <A3AD5861-FE88-4D6E-B10A-B83F68BA6368@quendi.de>
On Tue, Mar 12, 2013 at 01:29:45AM +0100, Max Horn wrote:
> So it seems pretty clear what the cause of this is. Now I still need
> to figure out why it affects that particular repository and not
> others. But at this point I guess it is safe to say that Apple's
> auto-crap-magic revisiond is the root of the problem, and git is
> purely a victim. So I'll stop spamming this list with this issue for
> now, and see if I can figure out a fix that is less invasive than
> turning off revisiond completely (which some application rely on, so
> disabling it may break them badly).
>From "git help config":
core.trustctime
If false, the ctime differences between the index and the working
tree are ignored; useful when the inode change time is regularly
modified by something outside Git (file system crawlers and some
backup systems). See git-update- index(1). True by default.
-Peff
^ permalink raw reply
* Re: rebase: strange failures to apply patc 3-way
From: Andrew Wong @ 2013-03-12 0:58 UTC (permalink / raw)
To: Max Horn; +Cc: git@vger.kernel.org
In-Reply-To: <A3AD5861-FE88-4D6E-B10A-B83F68BA6368@quendi.de>
On 03/11/13 20:29, Max Horn wrote:
> sudo launchctl unload /System/Library/LaunchDaemons/com.apple.revisiond.plist
>
> -> this exits revisiond, and prevents launchd from respawning it. After that, the problem is gone, on several attempts. And once I reactivate revisions, the problem reoccurs.
>
> So it seems pretty clear what the cause of this is. Now I still need to figure out why it affects that particular repository and not others. But at this point I guess it is safe to say that Apple's auto-crap-magic revisiond is the root of the problem, and git is purely a victim. So I'll stop spamming this list with this issue for now, and see if I can figure out a fix that is less invasive than turning off revisiond completely (which some application rely on, so disabling it may break them badly).
>
> Andrew, thank you very much for your persistent guidance and help. I definitely owe you a beverage-of-your-choice ;-).
Awesome! I was starting to worry that we'd never figure out what the
issue is. Good thing you know your way around OS X and its debugging
tools. :)
Maybe drop an email if you figure out what's causing revisiond to be so
persistent about those specific files. Might help any who run into
similar issues in the future.
Cheers!
^ permalink raw reply
* Re: rebase: strange failures to apply patc 3-way
From: Andrew Wong @ 2013-03-12 1:03 UTC (permalink / raw)
To: Jeff King; +Cc: Max Horn, git@vger.kernel.org
In-Reply-To: <20130312010114.GA21026@sigill.intra.peff.net>
On 03/11/13 21:01, Jeff King wrote:
> From "git help config":
>
> core.trustctime
> If false, the ctime differences between the index and the working
> tree are ignored; useful when the inode change time is regularly
> modified by something outside Git (file system crawlers and some
> backup systems). See git-update- index(1). True by default.
In an earlier email, Max did mention setting the config does workaround
the issue. But it's still strange that it only happens to a few specific
files in this particular repo. The issue never popped up in other repos
that he has, which I assume has all been excluded from Time Machine...
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox