Aw: [PATCH 0/2] GIT, Git, git

2013-01-20 Thread Thomas Ackermann
 
 
 Git changed its 'official' system name from 'GIT' to 'Git' in v1.6.5.3
 (as can be seen in the corresponding release note where 'GIT' was 
 changed to 'Git' in the header line).
 
 Alas the documention uses 'GIT', 'Git' or even 'git' to refer to the
 Git system. So change every occurrence of 'GIT and 'git' to 'Git'
 whenever Git as a system is referred to (but don't do this change
 in the release notes because they constitute a history orthogonal
 to the history versioned by Git).
 
 [PATCH 1/2] Change old system name 'GIT' to 'Git'
 [PATCH 2/2] Change 'git' to 'Git' whenever the whole system is referred to
 

My second patch somehow got lost in the mailing system (I suspect
due to its size of 300kB). I will wait for some more comments
and then do a reroll thereby splitting the second patch in smaller
parts ...


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


Re: Version 1.8.1 does not compile on Cygwin 1.7.14

2013-01-20 Thread Jonathan Nieder
Ramsay Jones wrote:

 --- a/git-compat-util.h
 +++ b/git-compat-util.h
 @@ -85,12 +85,6 @@
  #define _NETBSD_SOURCE 1
  #define _SGI_SOURCE 1
  
 -#ifdef WIN32 /* Both MinGW and MSVC */
 -#define WIN32_LEAN_AND_MEAN  /* stops windows.h including winsock.h */
 -#include winsock2.h
 -#include windows.h
 -#endif

So, do I understand correctly that the above conditional should be
something like

 #if defined(WIN32)  !defined(__CYGWIN__)

to allow dropping the CYGWIN_V15_WIN32API setting?

defined(WIN32) is used throughout git to mean win32 and not
cygwin, so if I understand correctly we would either need to do

 #if defined(WIN32)  defined(__CYGWIN__)
 # undef WIN32
 #endif

or define a new GIT_WIN32 (name is just a placeholder) macro to use
consistently in its stead.

Thanks for investigating.
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


Re: Version 1.8.1 does not compile on Cygwin 1.7.14

2013-01-20 Thread Torsten Bögershausen
On 20.01.13 11:10, Jonathan Nieder wrote:
 Ramsay Jones wrote:
 
 --- a/git-compat-util.h
 +++ b/git-compat-util.h
 @@ -85,12 +85,6 @@
  #define _NETBSD_SOURCE 1
  #define _SGI_SOURCE 1
  
 -#ifdef WIN32 /* Both MinGW and MSVC */
 -#define WIN32_LEAN_AND_MEAN  /* stops windows.h including winsock.h */
 -#include winsock2.h
 -#include windows.h
 -#endif
 
 So, do I understand correctly that the above conditional should be
 something like
 
  #if defined(WIN32)  !defined(__CYGWIN__)
 
 to allow dropping the CYGWIN_V15_WIN32API setting?
 
 defined(WIN32) is used throughout git to mean win32 and not
 cygwin, so if I understand correctly we would either need to do
 
  #if defined(WIN32)  defined(__CYGWIN__)
  # undef WIN32
  #endif
 
 or define a new GIT_WIN32 (name is just a placeholder) macro to use
 consistently in its stead.
 
 Thanks for investigating.
 Jonathan

I wonder, if if we can go one step further:

Replace
#ifdef WIN32 /* Both MinGW and MSVC */
#define WIN32_LEAN_AND_MEAN  /* stops windows.h including winsock.h */
#include winsock2.h
#include windows.h
#endif

with
#if defined(_MSC_VER)
#define WIN32_LEAN_AND_MEAN  /* stops windows.h including winsock.h */
#include winsock2.h
#include windows.h
#endif

Any thougths from msysGit ?
/Torsten




--
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] INSTALL: git-p4 doesn't support Python 3

2013-01-20 Thread John Keeping
On Sat, Jan 19, 2013 at 05:31:35PM -0800, David Aguilar wrote:
 On Sat, Jan 19, 2013 at 4:01 AM, John Keeping j...@keeping.me.uk wrote:
  Since Pyhton
 2.8 will never exist [1]
 
 Tiny typo: Python misspelled as Pyhton

Thanks.  v2 on its way.


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


Re: Version 1.8.1 does not compile on Cygwin 1.7.14

2013-01-20 Thread Jonathan Nieder
Torsten Bögershausen wrote:

 I wonder, if if we can go one step further:

 Replace
 #ifdef WIN32 /* Both MinGW and MSVC */
[...]
 with
 #if defined(_MSC_VER)

I thought Git for Windows was built using mingw, which doesn't define
_MSC_VER?

Puzzled,
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 v2] INSTALL: git-p4 doesn't support Python 3

2013-01-20 Thread John Keeping
git-p4 supports Python 2.6 and later versions of Python 2.  Since Python
2.8 will never exist [1], it is most concise to just list the supported
versions.

[1] http://www.python.org/dev/peps/pep-0404/

Signed-off-by: John Keeping j...@keeping.me.uk
Acked-by: Pete Wyckoff p...@padd.com
---
Since v1:
 - Fixed a typo in the commit message.

 INSTALL | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/INSTALL b/INSTALL
index 28f34bd..c456d1c 100644
--- a/INSTALL
+++ b/INSTALL
@@ -131,7 +131,7 @@ Issues of note:
  use English. Under autoconf the configure script will do this
  automatically if it can't find libintl on the system.
 
-   - Python version 2.6 or later is needed to use the git-p4
+   - Python version 2.6 or 2.7 is needed to use the git-p4
  interface to Perforce.
 
  - Some platform specific issues are dealt with Makefile rules,
-- 
1.8.1.353.gc992d5a.dirty
--
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: Aw: Re: [PATCH 1/2] Change old system name 'GIT' to 'Git'

2013-01-20 Thread Matthieu Moy
Thomas Ackermann th.ac...@arcor.de writes:

 The whole point of my patch is to use 'Git' consistently when 
 we are talking about the system and not the individual command.

I like the idea. git should obviously remain lower-case when talking
about the command, but deserves a capital when talking about the
software independantly of whether it's called from command-line. Just
like I type firefox in a shell to launch a program called Firefox
(or even Mozilla Firefox).

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


[PATCH] mergetools: Add tortoisegitmerge helper

2013-01-20 Thread Sven Strickroth
- The TortoiseGit team renamed TortoiseMerge.exe to TortoiseGitMerge.exe
  (starting with 1.8.0) in order to make clear that this one has special
  support for git and prevent confusion with the TortoiseSVN TortoiseMerge
  version.
- The tortoisemerge mergetool does not work with filenames which have
  a space in it. Fixing this required changes in git and also in
  TortoiseGitMerge; see https://github.com/msysgit/msysgit/issues/57.

The new tortoisegitmerge helper was added so that people can still use
TortoiseMerge from TortoiseSVN (and older TortoiseGit versions).

Signed-off-by: Sven Strickroth em...@cs-ware.de
Reported-by: Sebastian Schuberth sschube...@gmail.com
---
 Documentation/diff-config.txt  |  4 ++--
 Documentation/git-mergetool.txt|  4 ++--
 Documentation/merge-config.txt |  6 +++---
 contrib/completion/git-completion.bash |  2 +-
 git-mergetool--lib.sh  |  2 +-
 mergetools/tortoisegitmerge| 17 +
 6 files changed, 26 insertions(+), 9 deletions(-)
 create mode 100644 mergetools/tortoisegitmerge

diff --git a/Documentation/diff-config.txt b/Documentation/diff-config.txt
index 4314ad0..13cbe5b 100644
--- a/Documentation/diff-config.txt
+++ b/Documentation/diff-config.txt
@@ -151,7 +151,7 @@ diff.driver.cachetextconv::
 diff.tool::
The diff tool to be used by linkgit:git-difftool[1].  This
option overrides `merge.tool`, and has the same valid built-in
-   values as `merge.tool` minus tortoisemerge and plus
-   kompare.  Any other value is treated as a custom diff tool,
+   values as `merge.tool` minus tortoisemerge/tortoisegitmerge and
+   plus kompare.  Any other value is treated as a custom diff tool,
and there must be a corresponding `difftool.tool.cmd`
option.
diff --git a/Documentation/git-mergetool.txt b/Documentation/git-mergetool.txt
index 6b563c5..a80cccd 100644
--- a/Documentation/git-mergetool.txt
+++ b/Documentation/git-mergetool.txt
@@ -28,8 +28,8 @@ OPTIONS
 --tool=tool::
Use the merge resolution program specified by tool.
Valid values include emerge, gvimdiff, kdiff3,
-   meld, vimdiff, and tortoisemerge. Run `git mergetool --tool-help`
-   for the list of valid tool settings.
+   meld, vimdiff, tortoisegitmerge, and tortoisemerge. Run
+   `git mergetool --tool-help` for the list of valid tool settings.
 +
 If a merge resolution program is not specified, 'git mergetool'
 will use the configuration variable `merge.tool`.  If the
diff --git a/Documentation/merge-config.txt b/Documentation/merge-config.txt
index 9bb4956..a047646 100644
--- a/Documentation/merge-config.txt
+++ b/Documentation/merge-config.txt
@@ -55,9 +55,9 @@ merge.tool::
Controls which merge resolution program is used by
linkgit:git-mergetool[1].  Valid built-in values are: araxis,
bc3, diffuse, ecmerge, emerge, gvimdiff, kdiff3, meld,
-   opendiff, p4merge, tkdiff, tortoisemerge, vimdiff
-   and xxdiff.  Any other value is treated is custom merge tool
-   and there must be a corresponding mergetool.tool.cmd option.
+   opendiff, p4merge, tkdiff, tortoisegitmerge, tortoisemerge,
+   vimdiff and xxdiff.  Any other value is treated is custom merge
+   tool and there must be a corresponding mergetool.tool.cmd option.
  merge.verbosity::
Controls the amount of output shown by the recursive merge
diff --git a/contrib/completion/git-completion.bash 
b/contrib/completion/git-completion.bash
index 90f5f05..5332a33 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1345,7 +1345,7 @@ _git_mergetool ()
 {
case $cur in
--tool=*)
-   __gitcomp $__git_mergetools_common tortoisemerge  
${cur##--tool=}
+   __gitcomp $__git_mergetools_common tortoisegitmerge 
tortoisemerge  ${cur##--tool=}
return
;;
--*)
diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh
index f013a03..47183ef 100644
--- a/git-mergetool--lib.sh
+++ b/git-mergetool--lib.sh
@@ -150,7 +150,7 @@ run_merge_cmd () {
 list_merge_tool_candidates () {
if merge_mode
then
-   tools=tortoisemerge
+   tools=tortoisegitmerge tortoisemerge
else
tools=kompare
fi
diff --git a/mergetools/tortoisegitmerge b/mergetools/tortoisegitmerge
new file mode 100644
index 000..5b802a7
--- /dev/null
+++ b/mergetools/tortoisegitmerge
@@ -0,0 +1,17 @@
+can_diff () {
+   return 1
+}
+
+merge_cmd () {
+   if $base_present
+   then
+   touch $BACKUP
+   $merge_tool_path \
+   -base $BASE -mine $LOCAL \
+   -theirs $REMOTE -merged $MERGED
+   check_unchanged
+   else
+   echo TortoiseGitMerge cannot be used without a base 12
+   return 1
+   fi
+}
-- 
Best regards,
 Sven 

Re: [RFC] git rm -u

2013-01-20 Thread Matthieu Moy
Jonathan Nieder jrnie...@gmail.com writes:

 Eric James Michael Ritz wrote:

 When I came to my senses and realized that does not work I began to
 wonder if `git rm -u` should exist.  If any deleted, tracked files are
 not part of the index to commit then `git rm -u` would add that change
 to the index.

 I like it.  If you have time to write such a patch, I'll be happy to
 read it.

I can leave with git add -u, but a git rm -u that would only look at
deletions, and not stage existing files changes would make sense.

One thing to be careful about is what to do when the command is called
from a subdirectory. In general, Git commands use this convention:

* git foo   = tree-wide command
* git foo . = restrict to current directory

git add -u is one of the only exceptions (with git grep). I consider
this as a bug, and think this should be changed. This has been discussed
several times here, but no one took the time to actually do the change
(changing is easy, but having a correct migration plan wrt backward
compatibility is not).

Implementing git rm -u as a tree-wide command would create a
discrepancy with git add -u. Implementing it as a current directory
command would make the migration harder if we eventually try to change
git add -u. Perhaps git rm -u should be forbidden from a
subdirectory (with an error message pointing to git rm -u :/ and git
rm -u .), waiting for a possible git add -u change.

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


Re: Aw: [PATCH 0/2] GIT, Git, git

2013-01-20 Thread Thomas Rast
Thomas Ackermann th.ac...@arcor.de writes:

 Git changed its 'official' system name from 'GIT' to 'Git' in v1.6.5.3
 (as can be seen in the corresponding release note where 'GIT' was 
 changed to 'Git' in the header line).
 
 Alas the documention uses 'GIT', 'Git' or even 'git' to refer to the
 Git system. So change every occurrence of 'GIT and 'git' to 'Git'
 whenever Git as a system is referred to (but don't do this change
 in the release notes because they constitute a history orthogonal
 to the history versioned by Git).
 
 [PATCH 1/2] Change old system name 'GIT' to 'Git'
 [PATCH 2/2] Change 'git' to 'Git' whenever the whole system is referred to
 

 My second patch somehow got lost in the mailing system (I suspect
 due to its size of 300kB). I will wait for some more comments
 and then do a reroll thereby splitting the second patch in smaller
 parts ...

For such big patches it also helps if you push them somewhere public,
and post the URL and branch name, so that interested parties can still
have a look.

But yes, vger.kernel.org silently discards all mail above 100KB, see

  http://vger.kernel.org/majordomo-info.html

in the last section.

-- 
Thomas Rast
trast@{inf,student}.ethz.ch
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/3] fixup remaining cvsimport tests

2013-01-20 Thread John Keeping
Hi Chris,

On Thu, Jan 10, 2013 at 10:27:16PM -0600, Chris Rorvick wrote:
 These patchs apply on top of of Eric Raymond's cvsimport patch.  7 of 15
 tests in t9600 fail, one of which is fixed w/ a cvsps patch I've sent
 to Eric (fixes revision map.)

Did you post the fix for the revision map publicly anywhere?  I'm hoping
to publish some fixes to command handling but would like to have the
tests passing first - and if you've already done the work...

Sorry if you have and I've missed it,

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


[PATCH v3 0/8] Python 3 support for git_remote_helpers

2013-01-20 Thread John Keeping
This series does enough so that everything except git-p4 runs under
Python 3.

 
As discussed with Pete, it may not make sense to change git-p4 to
support Python 3 until Perforce's Python output mode is changed.  So
does it make sense to merge this now and say use Python 2 if you want
git-p4?

 
Changes since v2:

 - Change reference URL in commit message of patch 4
   (git_remote_helpers: Use 2to3 if building with Python 3) to point at
   Python documentation instead of the Python wiki.

 - Add a comment in patch 7 (git-remote-testpy: don't do unbuffered text
   I/O), as suggested by Sverre.


John Keeping (8):
  git_remote_helpers: Allow building with Python 3
  git_remote_helpers: fix input when running under Python 3
  git_remote_helpers: Force rebuild if python version changes
  git_remote_helpers: Use 2to3 if building with Python 3
  svn-fe: allow svnrdump_sim.py to run with Python 3
  git-remote-testpy: hash bytes explicitly
  git-remote-testpy: don't do unbuffered text I/O
  git-remote-testpy: call print as a function

 contrib/svn-fe/svnrdump_sim.py |  4 ++--
 git-remote-testpy.py   | 46 +-
 git_remote_helpers/.gitignore  |  1 +
 git_remote_helpers/Makefile| 10 +++--
 git_remote_helpers/git/importer.py |  9 +---
 git_remote_helpers/setup.py| 10 +
 6 files changed, 52 insertions(+), 28 deletions(-)

-- 
1.8.1.353.gc992d5a.dirty

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


[PATCH v3 1/8] git_remote_helpers: Allow building with Python 3

2013-01-20 Thread John Keeping
Change inline Python to call print as a function not a statement.

This is harmless because Python 2 will see the parentheses as redundant
grouping but they are necessary to run this code with Python 3.

Signed-off-by: John Keeping j...@keeping.me.uk
---
 git_remote_helpers/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/git_remote_helpers/Makefile b/git_remote_helpers/Makefile
index 74b05dc..f65f064 100644
--- a/git_remote_helpers/Makefile
+++ b/git_remote_helpers/Makefile
@@ -23,7 +23,7 @@ endif
 
 PYLIBDIR=$(shell $(PYTHON_PATH) -c \
 import sys; \
-print 'lib/python%i.%i/site-packages' % sys.version_info[:2])
+print('lib/python%i.%i/site-packages' % sys.version_info[:2]))
 
 all: $(pysetupfile)
$(QUIET)$(PYTHON_PATH) $(pysetupfile) $(QUIETSETUP) build
-- 
1.8.1.353.gc992d5a.dirty

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


[PATCH v3 2/8] git_remote_helpers: fix input when running under Python 3

2013-01-20 Thread John Keeping
Although 2to3 will fix most issues in Python 2 code to make it run under
Python 3, it does not handle the new strict separation between byte
strings and unicode strings.  There is one instance in
git_remote_helpers where we are caught by this, which is when reading
refs from git for-each-ref.

Fix this by operating on the returned string as a byte string rather
than a unicode string.  As this method is currently only used internally
by the class this does not affect code anywhere else.

Note that we cannot use byte strings in the source as the 'b' prefix is
not supported before Python 2.7 so in order to maintain compatibility
with the maximum range of Python versions we use an explicit call to
encode().

Signed-off-by: John Keeping j...@keeping.me.uk
---
 git_remote_helpers/git/importer.py | 9 ++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/git_remote_helpers/git/importer.py 
b/git_remote_helpers/git/importer.py
index e28cc8f..d3f90e1 100644
--- a/git_remote_helpers/git/importer.py
+++ b/git_remote_helpers/git/importer.py
@@ -18,13 +18,16 @@ class GitImporter(object):
 
 def get_refs(self, gitdir):
 Returns a dictionary with refs.
+
+Note that the keys in the returned dictionary are byte strings as
+read from git.
 
 args = [git, --git-dir= + gitdir, for-each-ref, refs/heads]
-lines = check_output(args).strip().split('\n')
+lines = check_output(args).strip().split('\n'.encode('ascii'))
 refs = {}
 for line in lines:
-value, name = line.split(' ')
-name = name.strip('commit\t')
+value, name = line.split(' '.encode('ascii'))
+name = name.strip('commit\t'.encode('ascii'))
 refs[name] = value
 return refs
 
-- 
1.8.1.353.gc992d5a.dirty

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


[PATCH v3 3/8] git_remote_helpers: Force rebuild if python version changes

2013-01-20 Thread John Keeping
When different version of python are used to build via distutils, the
behaviour can change.  Detect changes in version and pass --force in
this case.

Signed-off-by: John Keeping j...@keeping.me.uk
---
 git_remote_helpers/.gitignore | 1 +
 git_remote_helpers/Makefile   | 8 +++-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/git_remote_helpers/.gitignore b/git_remote_helpers/.gitignore
index 2247d5f..06c664f 100644
--- a/git_remote_helpers/.gitignore
+++ b/git_remote_helpers/.gitignore
@@ -1,2 +1,3 @@
+/GIT-PYTHON_VERSION
 /build
 /dist
diff --git a/git_remote_helpers/Makefile b/git_remote_helpers/Makefile
index f65f064..91f458f 100644
--- a/git_remote_helpers/Makefile
+++ b/git_remote_helpers/Makefile
@@ -25,8 +25,14 @@ PYLIBDIR=$(shell $(PYTHON_PATH) -c \
 import sys; \
 print('lib/python%i.%i/site-packages' % sys.version_info[:2]))
 
+py_version=$(shell $(PYTHON_PATH) -c \
+   'import sys; print(%i.%i % sys.version_info[:2])')
+
 all: $(pysetupfile)
-   $(QUIET)$(PYTHON_PATH) $(pysetupfile) $(QUIETSETUP) build
+   $(QUIET)test $$(cat GIT-PYTHON_VERSION 2/dev/null) = $(py_version) 
|| \
+   flags=--force; \
+   $(PYTHON_PATH) $(pysetupfile) $(QUIETSETUP) build $$flags
+   $(QUIET)echo $(py_version) GIT-PYTHON_VERSION
 
 install: $(pysetupfile)
$(PYTHON_PATH) $(pysetupfile) install --prefix $(DESTDIR_SQ)$(prefix)
-- 
1.8.1.353.gc992d5a.dirty

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


[PATCH v3 4/8] git_remote_helpers: Use 2to3 if building with Python 3

2013-01-20 Thread John Keeping
Using the approach detailed in the Python documentation[1], run 2to3 on
the code as part of the build if building with Python 3.

The code itself requires no changes to convert cleanly.

[1] http://docs.python.org/3.3/howto/pyporting.html#during-installation

Signed-off-by: John Keeping j...@keeping.me.uk
Acked-by: Sverre Rabbelier srabbel...@gmail.com
---

On Fri, 18 Jan 2013 23:52:16 -0800, Sverre Rabbelier wrote:
 Assuming you tried this out on both 2.x and 3.x:

 Acked-by: Sverre Rabbelier srabbel...@gmail.com

I ran the test suite with Python 2.7.3 and 3.2.3.

 git_remote_helpers/setup.py | 10 ++
 1 file changed, 10 insertions(+)

diff --git a/git_remote_helpers/setup.py b/git_remote_helpers/setup.py
index 4d434b6..6de41de 100644
--- a/git_remote_helpers/setup.py
+++ b/git_remote_helpers/setup.py
@@ -4,6 +4,15 @@
 
 from distutils.core import setup
 
+# If building under Python3 we need to run 2to3 on the code, do this by
+# trying to import distutils' 2to3 builder, which is only available in
+# Python3.
+try:
+from distutils.command.build_py import build_py_2to3 as build_py
+except ImportError:
+# 2.x
+from distutils.command.build_py import build_py
+
 setup(
 name = 'git_remote_helpers',
 version = '0.1.0',
@@ -14,4 +23,5 @@ setup(
 url = 'http://www.git-scm.com/',
 package_dir = {'git_remote_helpers': ''},
 packages = ['git_remote_helpers', 'git_remote_helpers.git'],
+cmdclass = {'build_py': build_py},
 )
-- 
1.8.1.353.gc992d5a.dirty

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


[PATCH v3 5/8] svn-fe: allow svnrdump_sim.py to run with Python 3

2013-01-20 Thread John Keeping
The changes to allow this script to run with Python 3 are minimal and do
not affect its functionality on the versions of Python 2 that are
already supported (2.4 onwards).

Signed-off-by: John Keeping j...@keeping.me.uk
---
 contrib/svn-fe/svnrdump_sim.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/contrib/svn-fe/svnrdump_sim.py b/contrib/svn-fe/svnrdump_sim.py
index 17cf6f9..4e78a1c 100755
--- a/contrib/svn-fe/svnrdump_sim.py
+++ b/contrib/svn-fe/svnrdump_sim.py
@@ -14,7 +14,7 @@ if sys.hexversion  0x0204:
 
 def getrevlimit():
 var = 'SVNRMAX'
-if os.environ.has_key(var):
+if var in os.environ:
 return os.environ[var]
 return None
 
@@ -44,7 +44,7 @@ def writedump(url, lower, upper):
 
 if __name__ == __main__:
 if not (len(sys.argv) in (3, 4, 5)):
-print usage: %s dump URL -rLOWER:UPPER
+print(usage: %s dump URL -rLOWER:UPPER)
 sys.exit(1)
 if not sys.argv[1] == 'dump': raise NotImplementedError('only dump 
is suppported.')
 url = sys.argv[2]
-- 
1.8.1.353.gc992d5a.dirty

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


[PATCH v3 6/8] git-remote-testpy: hash bytes explicitly

2013-01-20 Thread John Keeping
Under Python 3 'hasher.update(...)' must take a byte string and not a
unicode string.  Explicitly encode the argument to this method to hex
bytes so that we don't need to worry about failures to encode that might
occur if we chose a textual encoding.

This changes the directory used by git-remote-testpy for its git mirror
of the remote repository, but this tool should not have any serious
users as it is used primarily to test the Python remote helper
framework.

The use of encode() moves the required Python version forward to 2.0.

Signed-off-by: John Keeping j...@keeping.me.uk
---
 git-remote-testpy.py | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/git-remote-testpy.py b/git-remote-testpy.py
index d94a66a..197b7be 100644
--- a/git-remote-testpy.py
+++ b/git-remote-testpy.py
@@ -31,9 +31,9 @@ from git_remote_helpers.git.exporter import GitExporter
 from git_remote_helpers.git.importer import GitImporter
 from git_remote_helpers.git.non_local import NonLocalGit
 
-if sys.hexversion  0x01050200:
-# os.makedirs() is the limiter
-sys.stderr.write(git-remote-testgit: requires Python 1.5.2 or later.\n)
+if sys.hexversion  0x0200:
+# string.encode() is the limiter
+sys.stderr.write(git-remote-testgit: requires Python 2.0 or later.\n)
 sys.exit(1)
 
 def get_repo(alias, url):
@@ -45,7 +45,7 @@ def get_repo(alias, url):
 repo.get_head()
 
 hasher = _digest()
-hasher.update(repo.path)
+hasher.update(repo.path.encode('hex'))
 repo.hash = hasher.hexdigest()
 
 repo.get_base_path = lambda base: os.path.join(
-- 
1.8.1.353.gc992d5a.dirty

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


[PATCH v3 7/8] git-remote-testpy: don't do unbuffered text I/O

2013-01-20 Thread John Keeping
Python 3 forbids unbuffered I/O in text mode.  Change the reading of
stdin in git-remote-testpy so that we read the lines as bytes and then
decode them a line at a time.

This allows us to keep the I/O unbuffered in order to avoid
reintroducing the bug fixed by commit 7fb8e16 (git-remote-testgit: fix
race when spawning fast-import).

Signed-off-by: John Keeping j...@keeping.me.uk
---
 git-remote-testpy.py | 10 +++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/git-remote-testpy.py b/git-remote-testpy.py
index 197b7be..5dbf1cc 100644
--- a/git-remote-testpy.py
+++ b/git-remote-testpy.py
@@ -154,7 +154,7 @@ def do_import(repo, args):
 refs = [ref]
 
 while True:
-line = sys.stdin.readline()
+line = sys.stdin.readline().decode()
 if line == '\n':
 break
 if not line.startswith('import '):
@@ -225,7 +225,7 @@ def read_one_line(repo):
 
 line = sys.stdin.readline()
 
-cmdline = line
+cmdline = line.decode()
 
 if not cmdline:
 warn(Unexpected EOF)
@@ -277,7 +277,11 @@ def main(args):
 
 more = True
 
-sys.stdin = os.fdopen(sys.stdin.fileno(), 'r', 0)
+# Use binary mode since Python 3 does not permit unbuffered I/O in text
+# mode.  Unbuffered I/O is required to avoid data that should be going
+# to git-fast-import after an export command getting caught in our
+# stdin buffer instead.
+sys.stdin = os.fdopen(sys.stdin.fileno(), 'rb', 0)
 while (more):
 more = read_one_line(repo)
 
-- 
1.8.1.353.gc992d5a.dirty

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


[PATCH v3 8/8] git-remote-testpy: call print as a function

2013-01-20 Thread John Keeping
This is harmless in Python 2, which sees the parentheses as redundant
grouping, but is required for Python 3.  Since this is the only change
required to make this script just run under Python 3 without needing
2to3 it seems worthwhile.

The case of an empty print must be handled specially because in that
case Python 2 will interpret '()' as an empty tuple and print it as
'()'; inserting an empty string fixes this.

Signed-off-by: John Keeping j...@keeping.me.uk
Acked-by: Sverre Rabbelier srabbel...@gmail.com
---
 git-remote-testpy.py | 28 ++--
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/git-remote-testpy.py b/git-remote-testpy.py
index 5dbf1cc..c7a04ec 100644
--- a/git-remote-testpy.py
+++ b/git-remote-testpy.py
@@ -87,9 +87,9 @@ def do_capabilities(repo, args):
 Prints the supported capabilities.
 
 
-print import
-print export
-print refspec refs/heads/*:%s* % repo.prefix
+print(import)
+print(export)
+print(refspec refs/heads/*:%s* % repo.prefix)
 
 dirname = repo.get_base_path(repo.gitdir)
 
@@ -98,11 +98,11 @@ def do_capabilities(repo, args):
 
 path = os.path.join(dirname, 'git.marks')
 
-print *export-marks %s % path
+print(*export-marks %s % path)
 if os.path.exists(path):
-print *import-marks %s % path
+print(*import-marks %s % path)
 
-print # end capabilities
+print('') # end capabilities
 
 
 def do_list(repo, args):
@@ -115,16 +115,16 @@ def do_list(repo, args):
 
 for ref in repo.revs:
 debug(? refs/heads/%s, ref)
-print ? refs/heads/%s % ref
+print(? refs/heads/%s % ref)
 
 if repo.head:
 debug(@refs/heads/%s HEAD % repo.head)
-print @refs/heads/%s HEAD % repo.head
+print(@refs/heads/%s HEAD % repo.head)
 else:
 debug(@refs/heads/master HEAD)
-print @refs/heads/master HEAD
+print(@refs/heads/master HEAD)
 
-print # end list
+print('') # end list
 
 
 def update_local_repo(repo):
@@ -164,7 +164,7 @@ def do_import(repo, args):
 ref = line[7:].strip()
 refs.append(ref)
 
-print feature done
+print(feature done)
 
 if os.environ.get(GIT_REMOTE_TESTGIT_FAILURE):
 die('Told to fail')
@@ -172,7 +172,7 @@ def do_import(repo, args):
 repo = update_local_repo(repo)
 repo.exporter.export_repo(repo.gitdir, refs)
 
-print done
+print(done)
 
 
 def do_export(repo, args):
@@ -192,8 +192,8 @@ def do_export(repo, args):
 repo.non_local.push(repo.gitdir)
 
 for ref in changed:
-print ok %s % ref
-print
+print(ok %s % ref)
+print('')
 
 
 COMMANDS = {
-- 
1.8.1.353.gc992d5a.dirty

--
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 interactive rebase 'consume' command

2013-01-20 Thread Stephen Kelly

Hi there,

I find the fixup command during an interactive rebase useful.

Sometimes when cleaning up a branch, I end up in a situation like this:

 pick 07bc3c9 Good commit.
 pick 1313a5e Commit to fixup into c2f62a3.
 pick c2f62a3 Another commit.


So, I have to reorder the commits, and change 1313a5e to 'f'. An alternative 
would be to squash 's' c2f62a3 into 1313a5e and clean up the commit message. 
The problem with that is it ends up with the wrong author time information.

So, I usually reorder and then fixup, but that can also be problematic if I 
get a conflict during the re-order (which is quite likely).

I would prefer to be able to mark a commit as 'should be consumed', so that:

 pick 07bc3c9 Good commit.
 consume 1313a5e Commit to fixup into c2f62a3.
 pick c2f62a3 Another commit.

will result in 

 pick 07bc3c9 Good commit.
 pick 62a3c2f Another commit.

directly.

Any thoughts on that? 

Thanks,

Steve.


--
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 interactive rebase 'consume' command

2013-01-20 Thread John Keeping
On Sun, Jan 20, 2013 at 03:05:18PM +0100, Stephen Kelly wrote:
 I find the fixup command during an interactive rebase useful.
 
 Sometimes when cleaning up a branch, I end up in a situation like this:
 
  pick 07bc3c9 Good commit.
  pick 1313a5e Commit to fixup into c2f62a3.
  pick c2f62a3 Another commit.
 
 So, I have to reorder the commits, and change 1313a5e to 'f'. An alternative 
 would be to squash 's' c2f62a3 into 1313a5e and clean up the commit message. 
 The problem with that is it ends up with the wrong author time information.
 
 So, I usually reorder and then fixup, but that can also be problematic if I 
 get a conflict during the re-order (which is quite likely).
 
 I would prefer to be able to mark a commit as 'should be consumed', so that:
 
  pick 07bc3c9 Good commit.
  consume 1313a5e Commit to fixup into c2f62a3.
  pick c2f62a3 Another commit.
 
 will result in 
 
  pick 07bc3c9 Good commit.
  pick 62a3c2f Another commit.
 
 directly.
 
 Any thoughts on that? 

Are you aware of the --autosqush option to git-rebase (and the
rebase.autosquash config setting)?  I find that using that combined
with the --fixup option to git-commit makes this workflow a lot more
intuitive.

(Which is not to say that I wouldn't find an option like 'consume'
useful but I find myself reordering the list very rarely since I started
using git commit --fixup=)


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


Re: git interactive rebase 'consume' command

2013-01-20 Thread Stephen Kelly
John Keeping wrote:
 Any thoughts on that?
 
 Are you aware of the --autosqush option to git-rebase (and the
 rebase.autosquash config setting)?  I find that using that combined
 with the --fixup option to git-commit makes this workflow a lot more
 intuitive.

Yes, I'm aware of it, but I think it's not related to the proposal I made. 

Mostly my proposal is about avoiding unnecessary conflict resolution.

Thanks,

Steve.




--
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 0/3] fixup remaining cvsimport tests

2013-01-20 Thread Chris Rorvick
On Sun, Jan 20, 2013 at 6:58 AM, John Keeping j...@keeping.me.uk wrote:
 Hi Chris,

 On Thu, Jan 10, 2013 at 10:27:16PM -0600, Chris Rorvick wrote:
 These patchs apply on top of of Eric Raymond's cvsimport patch.  7 of 15
 tests in t9600 fail, one of which is fixed w/ a cvsps patch I've sent
 to Eric (fixes revision map.)

 Did you post the fix for the revision map publicly anywhere?

It's in Eric's repo and included in version 3.8:

https://gitorious.org/cvsps/cvsps/commit/abe81e1775a8959291f629029513d1b7160bbde6

Chris
--
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 0/3] fixup remaining cvsimport tests

2013-01-20 Thread John Keeping
On Sun, Jan 20, 2013 at 09:22:03AM -0600, Chris Rorvick wrote:
 On Sun, Jan 20, 2013 at 6:58 AM, John Keeping j...@keeping.me.uk wrote:
 On Thu, Jan 10, 2013 at 10:27:16PM -0600, Chris Rorvick wrote:
 These patchs apply on top of of Eric Raymond's cvsimport patch.  7 of 15
 tests in t9600 fail, one of which is fixed w/ a cvsps patch I've sent
 to Eric (fixes revision map.)

 Did you post the fix for the revision map publicly anywhere?
 
 It's in Eric's repo and included in version 3.8:
 
 https://gitorious.org/cvsps/cvsps/commit/abe81e1775a8959291f629029513d1b7160bbde6

Thanks.  For some reason I thought the fix would be to
git-cvsimport-3.py.  Obviously I should have read more carefully.

Sorry for the noise.


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


Re: [PATCH v3] am: invoke perl's strftime in C locale

2013-01-20 Thread Junio C Hamano
Dmitry V. Levin l...@altlinux.org writes:

 Personally I prefer 2nd edition that is simpler and does the right thing
 (not that LC_ALL=C is necessary and sufficient, you neither need to add
 things like LANG=C nor can relax it to LC_TIME=C).

I guess everybody involved is in agreement, then.

Just FYI, LC_ALL=C LANG=C comes from the inertia dating back when
not everybody understood LC_*; I do not personally know of a system
that will be helped by the extra LANG=C these days, but I know it
will not hurt anybody, so...
--
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 0/2] Hiding some refs in ls-remote

2013-01-20 Thread Junio C Hamano
Jeff King p...@peff.net writes:

  [uploadPack]
  hiderefs = refs/changes

 Would you want to do the same thing on receive-pack? It could benefit
 from the same reduction in network cost (although it tends to be invoked
 less frequently than upload-pack).

Do *I* want to do?  Not when there already is a patch exists; I'd
rather take existing and tested patch ;-)

As I said, I view this primarily as solving the cluttering issue.
The use of hiderefs to hide these refs that point at objects I do
not consider belong to my repository from the pushers equally makes
sense as such, I think.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/2] Hiding some refs in ls-remote

2013-01-20 Thread Junio C Hamano
Junio C Hamano gits...@pobox.com writes:

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

 Should the client side learn how to list hidden refs too? I'm thinking
 of an extreme case where upload-pack advertises nothing (or maybe just
 refs/heads/master) and it's up to the client to ask for the ref
 selection it's interested in. upload-pack may need more updates to do
 that, I think.

 What you are talking about is a different goal.

 Look at this as a mechanism for the repository owner to control the
 clutter in what is shown to the intended audience of what s/he
 publishes in the repository.  Network bandwidth reduction of
 advertisement is a side effect of clutter reduction, and not
 necessarily the primary goal.

As a separate and follow-up topic, I can see a future where we also
have .delayref (in addition to .hideref) configuration, that causes
the upload-pack to:

 * omit refs that are marked as delayed;

 * advertise allow-expand-ref=value where the value is the
   pattern used to specify which refs are omitted via this mechanism
   (e.g. refs/* in your extreme example, or perhaps refs/tags/
   if you only advertise branches in order to limit the bandwidth);

and then a fetch-pack that is interested in fetching refs/foo/bar,
after seeing that it matches one of the allow-expand-ref patterns,
to ask expand-ref refs/foo/bar, expect the upload-pack to respond
with refs/foo/bar value of that ref (or refs/foo/bar does not
exist), before going into the usual want exchange (ls-remote
would of course do the same, and pattern-less ls-remote may even
ask to expand everything by saying expand-ref refs/* (where the
capability said allow-expand-ref=refs/* in your extreme example)
to grab everything discoverable).

That is _primarily_ for trading network bandwidth with initial
latency; as far as the end-result is concerned, delayed ones to be
expanded on demand are just as discoverable as the ones advertised
initially.

I think we'd want to have both in the end.  It just happens I just
posted the beginning of clutter-reduction one, as I think developing
both in parallel would be messy and hideref is probably less
involved than the delayref.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/2] Change old system name 'GIT' to 'Git'

2013-01-20 Thread Junio C Hamano
David Aguilar dav...@gmail.com writes:

 On Sat, Jan 19, 2013 at 1:59 AM, Thomas Ackermann th.ac...@arcor.de wrote:
 @@ -55,7 +55,7 @@ History Viewers

 - *gitweb* (shipped with git-core)

 -   GITweb provides full-fledged web interface for GIT repositories.
 +   GITweb provides full-fledged web interface for Git repositories.

 What about GITweb?

 diff --git a/Documentation/git-update-ref.txt 
 b/Documentation/git-update-ref.txt
 index d377a35..0df13ff 100644
 --- a/Documentation/git-update-ref.txt
 +++ b/Documentation/git-update-ref.txt
 @@ -73,7 +73,7 @@ in ref value.  Log lines are formatted as:
  Where oldsha1 is the 40 character hexadecimal value previously
  stored in ref, newsha1 is the 40 character hexadecimal value of
  newvalue and committer is the committer's name, email address
 -and date in the standard GIT committer ident format.
 +and date in the standard Git committer ident format.

 IMO some of these look nicer when everything is lowercase.
 e.g. standard git committer ident format.

I do not think we ever intended to change the *name* of the
software.

In the early days, we wrote GIT in places where, if we were doing a
fancier typography, we would have used drop-caps for the latter two
(i.e. it is Git spelled in a font whose lower case alphabets have
the same shape as upper case ones but are smaller).  So there were
only git vs Git.

If I were to decide today to change the spellings, with an explicit
purpose of making things more consistent across documentation, it
may make sense to use even a simpler rule that is less error-prone
for people who write new sentences that has to have the word.  How
about treating it just like any other ordinary word?  That is, we
say git (without double-quotes, of course), unless it comes at the
beginning of a sentence?

--
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] unpack-trees: do not abort when overwriting an existing file with the same content

2013-01-20 Thread Junio C Hamano
Nguyễn Thái Ngọc Duy  pclo...@gmail.com writes:

 + /*
 +  * If it has the same content that we are going to write down,

write down???

 +  * there's no point in complaining. We still overwrite it in the
 +  * end though. Permission is not checked so it may be lost.
 +  */

That is a regression, isn't it?  Is it too cumbersome to avoid
losing the permission bits by stopping in that case?

 + if (ce 
 + S_ISREG(st-st_mode)  S_ISREG(ce-ce_mode) 
 + st-st_size  1024 * 1024  /* should be configurable */
 + sha1_object_info(ce-sha1, ce_size) == OBJ_BLOB 
 + ce_size == st-st_size) {
 + void *buffer = NULL;
 + unsigned long size;
 + enum object_type type;
 + struct strbuf sb = STRBUF_INIT;
 + int matched =
 + strbuf_read_file(sb, ce-name, ce_size) == ce_size 
 + (buffer = read_sha1_file(ce-sha1, type, size)) != 
 NULL 
 + type == OBJ_BLOB 
 + size == ce_size 
 + !memcmp(buffer, sb.buf, size);
 + free(buffer);
 + strbuf_release(sb);
 + if (matched)
 + return 0;
 + }
 +
   return o-gently ? -1 :
   add_rejected_path(o, error_type, name);
  }
--
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: [RFC] git rm -u

2013-01-20 Thread Junio C Hamano
Matthieu Moy matthieu@grenoble-inp.fr writes:

 git add -u is one of the only exceptions (with git grep). I consider
 this as a bug, and think this should be changed. This has been discussed
 several times here, but no one took the time to actually do the change

Did we ever agree that it is a good change to begin with?  Pointers?
--
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: [RFC] git rm -u

2013-01-20 Thread Junio C Hamano
Matthieu Moy matthieu@grenoble-inp.fr writes:

 Implementing git rm -u as a tree-wide command would create a
 discrepancy with git add -u. Implementing it as a current directory
 command would make the migration harder if we eventually try to change
 git add -u. Perhaps git rm -u should be forbidden from a
 subdirectory (with an error message pointing to git rm -u :/ and git
 rm -u .), waiting for a possible git add -u change.

Yeah, that sounds sensible.  Start with a 'git rm -u' is forbidden
without arguments, give advise to use either . or :/.  And stop
there.

The first step of git add -u migration plan would be to warn when
no argument is given and update all the existing index entries, and
give the same advise to use either . or :/.  Keep this for three
cycles: 3 * (8 to 10 weeks per cycle) = 27 weeks ~ 1/2 year.

The second step would be to forbid git add -u, and keep the
advise.  That will make it in-line with git rm -u.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/2] Change old system name 'GIT' to 'Git'

2013-01-20 Thread Joachim Schmitz

Junio C Hamano wrote:

David Aguilar dav...@gmail.com writes:


On Sat, Jan 19, 2013 at 1:59 AM, Thomas Ackermann
th.ac...@arcor.de wrote:

@@ -55,7 +55,7 @@ History Viewers

- *gitweb* (shipped with git-core)

-   GITweb provides full-fledged web interface for GIT repositories.
+   GITweb provides full-fledged web interface for Git repositories.


What about GITweb?


diff --git a/Documentation/git-update-ref.txt
b/Documentation/git-update-ref.txt index d377a35..0df13ff 100644
--- a/Documentation/git-update-ref.txt
+++ b/Documentation/git-update-ref.txt
@@ -73,7 +73,7 @@ in ref value.  Log lines are formatted as:
 Where oldsha1 is the 40 character hexadecimal value previously
 stored in ref, newsha1 is the 40 character hexadecimal value of
 newvalue and committer is the committer's name, email address
-and date in the standard GIT committer ident format.
+and date in the standard Git committer ident format.


IMO some of these look nicer when everything is lowercase.
e.g. standard git committer ident format.


I do not think we ever intended to change the *name* of the
software.

In the early days, we wrote GIT in places where, if we were doing a
fancier typography, we would have used drop-caps for the latter two
(i.e. it is Git spelled in a font whose lower case alphabets have
the same shape as upper case ones but are smaller).  So there were
only git vs Git.

If I were to decide today to change the spellings, with an explicit
purpose of making things more consistent across documentation, it
may make sense to use even a simpler rule that is less error-prone
for people who write new sentences that has to have the word.  How
about treating it just like any other ordinary word?  That is, we
say git (without double-quotes, of course), unless it comes at the
beginning of a sentence?


Because then it could get confused with git, the command? That would be 
lower case even at the beginning of a sentence, wouldn't it?


Bye, Jojo 



--
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] INSTALL: git-p4 doesn't support Python 3

2013-01-20 Thread Junio C Hamano
John Keeping j...@keeping.me.uk writes:

 git-p4 supports Python 2.6 and later versions of Python 2.  Since Python
 2.8 will never exist [1], it is most concise to just list the supported
 versions.

Thanks; Eric's patch recently updated git-p4.py to require 2.4 I
think. Shouldn't it also be updated?


 [1] http://www.python.org/dev/peps/pep-0404/

 Signed-off-by: John Keeping j...@keeping.me.uk
 Acked-by: Pete Wyckoff p...@padd.com
 ---
 Since v1:
  - Fixed a typo in the commit message.

  INSTALL | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

 diff --git a/INSTALL b/INSTALL
 index 28f34bd..c456d1c 100644
 --- a/INSTALL
 +++ b/INSTALL
 @@ -131,7 +131,7 @@ Issues of note:
 use English. Under autoconf the configure script will do this
 automatically if it can't find libintl on the system.
  
 - - Python version 2.6 or later is needed to use the git-p4
 + - Python version 2.6 or 2.7 is needed to use the git-p4
 interface to Perforce.
  
   - Some platform specific issues are dealt with Makefile rules,
--
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 0/3] fixup remaining cvsimport tests

2013-01-20 Thread Junio C Hamano
John Keeping j...@keeping.me.uk writes:

 On Sun, Jan 20, 2013 at 09:22:03AM -0600, Chris Rorvick wrote:
 On Sun, Jan 20, 2013 at 6:58 AM, John Keeping j...@keeping.me.uk wrote:
 On Thu, Jan 10, 2013 at 10:27:16PM -0600, Chris Rorvick wrote:
 These patchs apply on top of of Eric Raymond's cvsimport patch.  7 of 15
 tests in t9600 fail, one of which is fixed w/ a cvsps patch I've sent
 to Eric (fixes revision map.)

 Did you post the fix for the revision map publicly anywhere?
 
 It's in Eric's repo and included in version 3.8:
 
 https://gitorious.org/cvsps/cvsps/commit/abe81e1775a8959291f629029513d1b7160bbde6

 Thanks.  For some reason I thought the fix would be to
 git-cvsimport-3.py.  Obviously I should have read more carefully.

 Sorry for the noise.

This is not a noise, though.

Chris, how would we want to proceed?  I'd prefer at some point to
see cvsimport-3 to be in sync when the one patched and tested in
Eric's repository is proven enough.  Will Eric be the gatekeeper, or
will you be sending patches this way as well?
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/2] Change old system name 'GIT' to 'Git'

2013-01-20 Thread Junio C Hamano
Joachim Schmitz j...@schmitz-digital.de writes:

 Because then it could get confused with git, the command? That would
 be lower case even at the beginning of a sentence, wouldn't it?

Is it a real-world problem?

I think in a prose when you refer to git the command, you would
say something like

The `git` command started as a thin wrapper to many
subcommand of the `git-subcmd` form.

--
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 interactive rebase 'consume' command

2013-01-20 Thread Junio C Hamano
Stephen Kelly steve...@gmail.com writes:

 Hi there,

 I find the fixup command during an interactive rebase useful.

 Sometimes when cleaning up a branch, I end up in a situation like this:

  pick 07bc3c9 Good commit.
  pick 1313a5e Commit to fixup into c2f62a3.
  pick c2f62a3 Another commit.


 So, I have to reorder the commits, and change 1313a5e to 'f'. An alternative 
 would be to squash 's' c2f62a3 into 1313a5e and clean up the commit message. 
 The problem with that is it ends up with the wrong author time information.

 So, I usually reorder and then fixup, but that can also be problematic if I 
 get a conflict during the re-order (which is quite likely).

 I would prefer to be able to mark a commit as 'should be consumed', so that:

  pick 07bc3c9 Good commit.
  consume 1313a5e Commit to fixup into c2f62a3.
  pick c2f62a3 Another commit.

 will result in 

  pick 07bc3c9 Good commit.
  pick 62a3c2f Another commit.

 directly.

 Any thoughts on that? 

Sorry, but I do not understand what you are trying to solve.

How can 1313a5e, which fixes misakes made in c2f62a3, come before
that commit in the first place?
--
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 interactive rebase 'consume' command

2013-01-20 Thread Stephen Kelly
Junio C Hamano wrote:
 Sorry, but I do not understand what you are trying to solve.
 
 How can 1313a5e, which fixes misakes made in c2f62a3, come before
 that commit in the first place?

One scenario is something like this:

 Start with a clean HEAD (always a good idea :) )
 hack hack hack
 make multiple commits
 realize that a hunk you committed in an early patch belongs in a later one.
 use git rebase -i to fix it.


Is that more clear?

Thanks,

Steve.


--
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: [RFC] git rm -u

2013-01-20 Thread Eric James Michael Ritz

On 01/20/2013 01:53 PM, Junio C Hamano wrote:
 Matthieu Moy matthieu@grenoble-inp.fr writes:

 Implementing git rm -u as a tree-wide command would create a
 discrepancy with git add -u. Implementing it as a current
 directory command would make the migration harder if we eventually
 try to change git add -u. Perhaps git rm -u should be forbidden
 from a subdirectory (with an error message pointing to git rm -u
 :/ and git rm -u .), waiting for a possible git add -u change.

 Yeah, that sounds sensible.  Start with a 'git rm -u' is forbidden
 without arguments, give advise to use either . or :/.  And stop
 there.

I was unaware of any plan to change `git add -u`, but the above makes
sense to me.  I will use those suggestions as guidelines for the
initial implementation of `git rm -u`.  In particular, it will require
an argument like `.` or `:/`.  It sounds like the future direction of
`git add -u` will play a role in how `git rm -u` should behave so that
there is consistency between the two, so I will try to take a
conservative approach in my implementation.  Thank you both for the
advice and insight.

--
ejmr
南無妙法蓮華經

--
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 0/3] fixup remaining cvsimport tests

2013-01-20 Thread John Keeping
On Sun, Jan 20, 2013 at 10:57:50AM -0800, Junio C Hamano wrote:
 John Keeping j...@keeping.me.uk writes:
 On Sun, Jan 20, 2013 at 09:22:03AM -0600, Chris Rorvick wrote:
 On Sun, Jan 20, 2013 at 6:58 AM, John Keeping j...@keeping.me.uk wrote:
 On Thu, Jan 10, 2013 at 10:27:16PM -0600, Chris Rorvick wrote:
 These patchs apply on top of of Eric Raymond's cvsimport patch.  7 of 15
 tests in t9600 fail, one of which is fixed w/ a cvsps patch I've sent
 to Eric (fixes revision map.)

 Did you post the fix for the revision map publicly anywhere?
 
 It's in Eric's repo and included in version 3.8:
 
 https://gitorious.org/cvsps/cvsps/commit/abe81e1775a8959291f629029513d1b7160bbde6

 Thanks.  For some reason I thought the fix would be to
 git-cvsimport-3.py.  Obviously I should have read more carefully.

 Sorry for the noise.
 
 This is not a noise, though.
 
 Chris, how would we want to proceed?  I'd prefer at some point to
 see cvsimport-3 to be in sync when the one patched and tested in
 Eric's repository is proven enough.  Will Eric be the gatekeeper, or
 will you be sending patches this way as well?

In this case the patch was to the C portion of cvsps, not the Python
cvs-import, so not relevant for this particular case.

I currently have a set of patches on top of jc/cvsimport-upgrade, which
is slightly out-of-sync with git-cvsimport.py in Eric's cvsps
repository, because I hadn't realised that the latter existed until
about an hour ago.

I haven't decided yet whether to rebase those onto the git-cvsimport.py
in the cvsps repository or send them here to apply on top of
jc/cvsimport-upgrade.  Given that git-cvsimport is a command which has
been around for a while and (although this is a complete re-write) the
aim of these changes is to keep it working as the upstream project
changes, I have a slight preference for keeping git-cvsimport here and
recommending that the copy in the cvsps repository is removed.


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


Re: [PATCH v2] INSTALL: git-p4 doesn't support Python 3

2013-01-20 Thread John Keeping
On Sun, Jan 20, 2013 at 10:54:52AM -0800, Junio C Hamano wrote:
 John Keeping j...@keeping.me.uk writes:
 
 git-p4 supports Python 2.6 and later versions of Python 2.  Since Python
 2.8 will never exist [1], it is most concise to just list the supported
 versions.
 
 Thanks; Eric's patch recently updated git-p4.py to require 2.4 I
 think. Shouldn't it also be updated?

I haven't done a thorough audit to check what the actual minimum
supported version is, this is just the minimal change to say not
Python 3.

Personally, I'm not sure of the value of having version checks at the
top of the Python scripts, I would rather set a project-wide minimum
supported version (as in my recent CodingGuidelines patch) and check it
once in the Makefile.


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


Re: [PATCH v2] Make git selectively and conditionally ignore certain stat fields

2013-01-20 Thread Robin Rosenberg


- Ursprungligt meddelande -

 That configurability is a slipperly slope to drag us into giving
 users
 more complexity that does not help them very much, I suspect.
 
 Earlier somebody mentioned size and mtime is often enough, so I
 think a single option core.looseStatInfo (substitute loose with
 short, minimum or whatever adjective that is more appropriate---I am
 not good at picking phrases, it sounds to me a way to more loosely
 define stat info cleanliness than we usually do) that makes us
 ignore all fields (regardless of their zero-ness) other than those
 two fields might not be a bad way to go.

Would something like this be good?

core.statinfo = 
default = all fields
minimal = whole seconds of mtime and size
medium = seconds, nanos of mtime and size
nonzero = all non-zero fields

-- robin
--
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] INSTALL: git-p4 doesn't support Python 3

2013-01-20 Thread Junio C Hamano
John Keeping j...@keeping.me.uk writes:

 On Sun, Jan 20, 2013 at 10:54:52AM -0800, Junio C Hamano wrote:
 John Keeping j...@keeping.me.uk writes:
 
 git-p4 supports Python 2.6 and later versions of Python 2.  Since Python
 2.8 will never exist [1], it is most concise to just list the supported
 versions.
 
 Thanks; Eric's patch recently updated git-p4.py to require 2.4 I
 think. Shouldn't it also be updated?

 I haven't done a thorough audit to check what the actual minimum
 supported version is, this is just the minimal change to say not
 Python 3.

 Personally, I'm not sure of the value of having version checks at the
 top of the Python scripts, I would rather set a project-wide minimum
 supported version (as in my recent CodingGuidelines patch) and check it
 once in the Makefile.

OK; I'll leave that for later a day (Cc'ed Eric but stakeholders of
other Python scripts may want to express their opinions), and will
apply this patch as is.

If we end up deciding to rip out the prerequisite per file, that
will be a tree-wide change that is independent from your patch we
are discussing in this thread.  If we end up not doing that, then we
would instead be updating git-p4.py to set a higher floor to the
prerequiste but that can come as a separate patch.

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


Re: [PATCH 2/3] Allow Git::get_tz_offset to properly handle DST boundary times

2013-01-20 Thread Ben Walton
On Thu, Jan 17, 2013 at 7:09 PM, Junio C Hamano gits...@pobox.com wrote:
 Ben Walton bdwal...@gmail.com writes:

 The Git::get_tz_offset is meant to provide a workalike replacement for
 the GNU strftime %z format specifier.  The algorithm used failed to
 properly handle DST boundary cases.

 For example, the unix time 1162105199 in CST6CDT saw set_tz_offset
 improperly return -0600 instead of -0500.

 TZ=CST6CDT date -d @1162105199 +%c %z
 Sun 29 Oct 2006 01:59:59 AM CDT -0500

 $ zdump -v /usr/share/zoneinfo/CST6CDT | grep 2006
 /usr/share/zoneinfo/CST6CDT  Sun Apr  2 07:59:59 2006 UTC = Sun Apr  2
 01:59:59 2006 CST isdst=0 gmtoff=-21600
 /usr/share/zoneinfo/CST6CDT  Sun Apr  2 08:00:00 2006 UTC = Sun Apr  2
 03:00:00 2006 CDT isdst=1 gmtoff=-18000
 /usr/share/zoneinfo/CST6CDT  Sun Oct 29 06:59:59 2006 UTC = Sun Oct 29
 01:59:59 2006 CDT isdst=1 gmtoff=-18000
 /usr/share/zoneinfo/CST6CDT  Sun Oct 29 07:00:00 2006 UTC = Sun Oct 29
 01:00:00 2006 CST isdst=0 gmtoff=-21600

 To determine how many hours/minutes away from GMT a particular time
 was, we calculated the gmtime() of the requested time value and then
 used Time::Local's timelocal() function to turn the GMT-based time
 back into a scalar value representing seconds from the epoch.  Because
 GMT has no daylight savings time, timelocal() cannot handle the
 ambiguous times that occur at DST boundaries since there are two
 possible correct results.

 To work around the ambiguity at these boundaries, we must take into
 account the pre and post conversion values for is_dst as provided by
 both the original time value and the value that has been run through
 timelocal().  If the is_dst field of the two times disagree then we
 must modify the value returned from timelocal() by an hour in the
 correct direction.

 It seems to me that it is a very roundabout way.  It may be correct,
 but it is unclear why the magic +/-3600 shift is the right solution
 and I suspect even you wouldn't notice if I sent you back your patch
 with a slight change to swap $gm += 3600 and $gm -= 3600 lines ;-).

 For that timestamp in question, the human-readable representation of
 gmtime($t) and localtime($t) look like these two strings:

 my $t = 1162105199;
 print gmtime($t), \n;# Sun Oct 29 06:59:59 2006
 print localtime($t), \n; # Sun Oct 29 01:59:59 2006

 As a human, you can easily see that these two stringified timestamps
 look 5 hours apart.  Think how you managed to do so.

 If we convert these back to the seconds-since-epoch, as if these
 broken-down times were both in a single timezone that does not have
 any DST issues, you can get the offset (in seconds) by subtraction,
 and that is essentially the same as the way in which your eyes saw
 they are 5 hours apart, no?  In other words, why do you need to run
 timelocal() at all?

 my $t = 1162105199;
 my $lct = timegm(localtime($t));
 # of course, timegm(gmtime($t)) == $t

 my $minutes = int(($lct - $t)/60);
 my $sign +;
 if ($minutes  0) {
 $sign = -;
 $minutes = -$minutes;
 }
 my $hours = int($minutes/60);
 $minutes -= $hours * 60;
 sprintf(%s%02d%02d, $sign, $hours, $minutes);

 Confused...


 Signed-off-by: Ben Walton bdwal...@gmail.com
 ---
  perl/Git.pm |   20 
  1 file changed, 20 insertions(+)

 diff --git a/perl/Git.pm b/perl/Git.pm
 index 5649bcc..788b9b4 100644
 --- a/perl/Git.pm
 +++ b/perl/Git.pm
 @@ -528,7 +528,27 @@ If TIME is not supplied, the current local time is used.
  sub get_tz_offset {
   # some systmes don't handle or mishandle %z, so be creative.
   my $t = shift || time;
 + # timelocal() has a problem when it comes to DST ambiguity so
 + # times that are on a DST boundary cannot be properly converted
 + # using it.  we will possibly adjust its result depending on whehter
 + # pre and post conversions agree on DST
   my $gm = timelocal(gmtime($t));
 +
 + # we need to know whether we were originally in DST or not
 + my $orig_dst = (localtime($t))[8];
 + # and also whether timelocal thinks we're in DST
 + my $conv_dst = (localtime($gm))[8];
 +
 + # re-adjust $gm based on the DST value for the two times we're
 + # handling.
 + if ($orig_dst != $conv_dst) {
 + if ($orig_dst == 1) {
 + $gm -= 3600;
 + } else {
 + $gm += 3600;
 + }
 + }
 +
   my $sign = qw( + + - )[ $t = $gm ];
   return sprintf(%s%02d%02d, $sign, (gmtime(abs($t - $gm)))[2,1]);
  }


Sorry for the slow response, I didn't have a good chance to look at
this until now.  You are correct; your solution appears simpler and
also avoids the oddball 1/2 hour DST shift.  I can re-roll the series
with your code (and credit for it) or you can apply you change on top
of my series...whichever is easiest for you.

Thanks
-Ben
--

git-cvsimport-3 and incremental imports

2013-01-20 Thread John Keeping
I've now spent some time looking at git-cvsimport-3.py from
jc/cvsimport-upgrade and made some progress in making it pass more of
the Git test suite (my work in progress is at [1]).

However, I think there is a fundamental problem with the way it handles
incremental imports and I'm hoping someone with more git-fast-import
experience can point me in the right direction.

Currently, cvsps-3 never writes a from ... line in the first commit it
outputs for a branch, even when the output is restricted by date (i.e. a
continuation of a previously imported branch), which results in failure
to update branches since git-fast-import is run without --force.  If I
make a simple modification so that it does this, it can end up
outputting an empty commit (a duplicate of the current tip commit on the
branch).

Given that the start date for the import is currently just read from
HEAD there is probably scope for this being worse on other branches if
they have more recent commits than the current branch.

I don't think there is any way to solve this without giving cvsps more
information, probably the last commit time for all git branches, but
perhaps I'm missing a fast-import feature that can help solve this
problem.


[1] https://github.com/johnkeeping/git/tree/cvsimport-3


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


Aw: Re: [PATCH 1/2] Change old system name 'GIT' to 'Git'

2013-01-20 Thread Thomas Ackermann
 
 If I were to decide today to change the spellings, with an explicit
 purpose of making things more consistent across documentation, it
 may make sense to use even a simpler rule that is less error-prone
 for people who write new sentences that has to have the word.  How
 about treating it just like any other ordinary word?  That is, we
 say git (without double-quotes, of course), unless it comes at the
 beginning of a sentence?
 

The widely used books on Git by Scott Chacon or Jon Loeliger (and
many others) are using 'Git' instead of 'git' when talking about the 
whole system. So IMHO it would not be wise to change our internal 
documentation from using 'GIT'/'Git' to using 'git'. The internal 
documentation should be a natural continuation of these books 
by content and style.

- Just my thoughts.


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


Re: [PATCH 0/3] fixup remaining cvsimport tests

2013-01-20 Thread Chris Rorvick
On Sun, Jan 20, 2013 at 12:57 PM, Junio C Hamano gits...@pobox.com wrote:
 John Keeping j...@keeping.me.uk writes:

 On Sun, Jan 20, 2013 at 09:22:03AM -0600, Chris Rorvick wrote:
 On Sun, Jan 20, 2013 at 6:58 AM, John Keeping j...@keeping.me.uk wrote:
 On Thu, Jan 10, 2013 at 10:27:16PM -0600, Chris Rorvick wrote:
 These patchs apply on top of of Eric Raymond's cvsimport patch.  7 of 15
 tests in t9600 fail, one of which is fixed w/ a cvsps patch I've sent
 to Eric (fixes revision map.)

 Did you post the fix for the revision map publicly anywhere?

 It's in Eric's repo and included in version 3.8:

 https://gitorious.org/cvsps/cvsps/commit/abe81e1775a8959291f629029513d1b7160bbde6

 Thanks.  For some reason I thought the fix would be to
 git-cvsimport-3.py.  Obviously I should have read more carefully.

 Sorry for the noise.

 This is not a noise, though.

 Chris, how would we want to proceed?  I'd prefer at some point to
 see cvsimport-3 to be in sync when the one patched and tested in
 Eric's repository is proven enough.  Will Eric be the gatekeeper, or
 will you be sending patches this way as well?

I probably won't be sending any more patches on this.  My hope was to
get cvsimport-3 (w/ cvsps as the engine) in a state such that one
could transition from the previous version seamlessly.  But the break
in t9605 has convinced me this is not worth the effort--even in this
trivial case cvsps is broken.  The fuzzing logic aggregates commits
into patch sets that have timestamps within a specified window and
otherwise matching attributes.  This aggregation causes file-level
commit timestamps to be lost and we are left with a single timestamp
for the patch set: the minimum for all contained CVS commits.  When
all commits have been processed, the patch sets are ordered
chronologically and printed.

The problem is that is that a CVS commit is rolled into a patch set
regardless of whether the patch set's timestamp falls within the
adjacent CVS file-level commits.  Even worse, since the patch set
timestamp changes as subsequent commits are added (i.e., it's always
picking the earliest) it is potentially indeterminate at the time a
commit is added.  The result is that file revisions can be reordered
in resulting Git import (see t9605.)  I spent some time last week
trying to solve this but I coudln't think of anything that wasn't a
substantial re-work of the code.

I have never used cvs2git, but I suspect Eric's efforts in making it a
potential backend for cvsimport are a better use of time.

Chris
--
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 interactive rebase 'consume' command

2013-01-20 Thread Junio C Hamano
Stephen Kelly steve...@gmail.com writes:

 Junio C Hamano wrote:
 Sorry, but I do not understand what you are trying to solve.
 
 How can 1313a5e, which fixes misakes made in c2f62a3, come before
 that commit in the first place?

 One scenario is something like this:

  Start with a clean HEAD (always a good idea :) )
  hack hack hack
  make multiple commits
  realize that a hunk you committed in an early patch belongs in a later one.
  use git rebase -i to fix it.

 Is that more clear?

Not really.

If you think that the author timestamp is the time the author
finished working on the commit, shouldn't the squashed result get
the timestamp when you finished squashing, not the timestamp of
either of the commits that were squashed?  Unlike fixup and
reword, the change you are making is very different from any of
the original constituent commmits, and you finished working on that
change when you squashed these commits into one.  Propagating the
timestamp from the later ones sounds equally wrong for that purpose.

In any case, the intent of the author timestamp is to record the
time the author _started_ working on the change and came up with an
initial, possibly a partial, draft.  It does not record the time
when the commit was finalized.  git commit --amend preserves the
original timestamp, doesn't it?

In your example:

  pick 07bc3c9 Good commit.
  pick 1313a5e Commit to fixup into c2f62a3.
  pick c2f62a3 Another commit.

you can view 1313a5e as a preparatory clean-up for the real change
in c2f62a3, which could be a separate commit in the final history.
If you choose to squash them together into one, the time you
recorded 1313a5e was when you started working on the combined
change, so it does not sound so wrong to take that author timestamp
for the result.
--
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] Make git selectively and conditionally ignore certain stat fields

2013-01-20 Thread Junio C Hamano
Robin Rosenberg robin.rosenb...@dewire.com writes:

 - Ursprungligt meddelande -

 That configurability is a slipperly slope to drag us into giving
 users
 more complexity that does not help them very much, I suspect.
 
 Earlier somebody mentioned size and mtime is often enough, so I
 think a single option core.looseStatInfo (substitute loose with
 short, minimum or whatever adjective that is more appropriate---I am
 not good at picking phrases, it sounds to me a way to more loosely
 define stat info cleanliness than we usually do) that makes us
 ignore all fields (regardless of their zero-ness) other than those
 two fields might not be a bad way to go.

 Would something like this be good?

 core.statinfo = 
 default = all fields
 minimal = whole seconds of mtime and size
 medium = seconds, nanos of mtime and size
 nonzero = all non-zero fields

 -- robin

If you mean to exclude ctime and other fields we already exclude as
useless from your all, that may make sense, but do we really need
that much flexibility, or do more choices just confuse users? I
have this suspicion that it may be the latter.

Wouldn't a single boolean that lets users choose between your
minimal and default be sufficient?
--
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] INSTALL: git-p4 doesn't support Python 3

2013-01-20 Thread Brandon Casey
On Sun, Jan 20, 2013 at 11:28 AM, John Keeping j...@keeping.me.uk wrote:
 On Sun, Jan 20, 2013 at 10:54:52AM -0800, Junio C Hamano wrote:
 John Keeping j...@keeping.me.uk writes:

 git-p4 supports Python 2.6 and later versions of Python 2.  Since Python
 2.8 will never exist [1], it is most concise to just list the supported
 versions.

 Thanks; Eric's patch recently updated git-p4.py to require 2.4 I
 think. Shouldn't it also be updated?

Actually, the script does not support python 2.4 in its current state
since it uses subprocess.check_call which was introduced in python
2.5.

But, this can be trivially worked around.  I made the changes in my
own tree on Friday and planned to submit them after using it myself
for a few days.

Personally, I prefer to continue to provide the ability to compile and
install a fully working git on platforms in common use without pulling
in additional dependencies.  At least while it's fairly easy to do so.
 So, in my opinion, git-p4 should be patched to support python 2.4 and
the comment in INSTALL should be updated.  But, this opinion should be
taken with the appropriate grain of salt since I'm not really a
contributor to any of the python infrastructure.

-Brandon
--
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 2/3] Allow Git::get_tz_offset to properly handle DST boundary times

2013-01-20 Thread Junio C Hamano
Ben Walton bdwal...@gmail.com writes:

 also avoids the oddball 1/2 hour DST shift.  I can re-roll the series
 with your code (and credit for it) or you can apply you change on top
 of my series...whichever is easiest for you.

Please reroll, as I do not have patience either to set up a test
case and verify the end result is correct, or to come up with a test
case for it.  For this particular case, I think the identification
of the issue weighs more than the implementation for fix it, so
please retain the authorship for the fix; mentioning taking the
implementation idea from Junio in the log message is the right
amount of credit due to me.

Thanks.


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


Re: Aw: Re: [PATCH 1/2] Change old system name 'GIT' to 'Git'

2013-01-20 Thread Junio C Hamano
Thomas Ackermann th.ac...@arcor.de writes:

 If I were to decide today to change the spellings, with an explicit
 purpose of making things more consistent across documentation, it
 may make sense to use even a simpler rule that is less error-prone
 for people who write new sentences that has to have the word.  How
 about treating it just like any other ordinary word?  That is, we
 say git (without double-quotes, of course), unless it comes at the
 beginning of a sentence?
 

 The widely used books on Git by Scott Chacon or Jon Loeliger (and
 many others) are using 'Git' instead of 'git' when talking about the 
 whole system. So IMHO it would not be wise to change our internal 
 documentation from using 'GIT'/'Git' to using 'git'. The internal 
 documentation should be a natural continuation of these books 
 by content and style.

That argument is going the other way around (we _are_ the
authoritative source).

But I am OK with Git as a proper noun (which always begins with
capital letter), using git only when it is something the user
would type.  Just come up with a simple-to-explain rule so that
people will have no doubt which one to use in their new text and
stick to it.

Thanks.


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


Re: [PATCH 0/3] fixup remaining cvsimport tests

2013-01-20 Thread Chris Rorvick
On Sun, Jan 20, 2013 at 1:24 PM, John Keeping j...@keeping.me.uk wrote:
 On Sun, Jan 20, 2013 at 10:57:50AM -0800, Junio C Hamano wrote:
 This is not a noise, though.

 Chris, how would we want to proceed?  I'd prefer at some point to
 see cvsimport-3 to be in sync when the one patched and tested in
 Eric's repository is proven enough.  Will Eric be the gatekeeper, or
 will you be sending patches this way as well?

 In this case the patch was to the C portion of cvsps, not the Python
 cvs-import, so not relevant for this particular case.

Oh, I think I misunderstood the question.  The only time I passed a
patch specifically for git-cvsimport.py directly to Eric was before
the his patch was in Junio's repository.  Unless I'm mistaken, only
the second patch Eric sent was actually imported.  Subsequent to this
I would have submitted any patches for git-cvsimport.py directly to
the git list.  I just didn't have any--cvsps had several problems that
needed to be worked out before it made sense to look at the importer.

In other words, I don't think Eric should be a gatekeeper of this code.

Chris
--
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 0/7] guilt patches, including git 1.8 support

2013-01-20 Thread Josef 'Jeff' Sipek
On Sun, Jan 20, 2013 at 10:19:39PM +0100, Per Cederqvist wrote:
 On 01/16/13 03:26, Jonathan Nieder wrote:
 Hi Jeff and other guilty parties,
 
 I collected all the guilt patches I could find on-list and added one
 of my own.  Completely untested, except for running the regression
 tests.  These are also available via git protocol from
 
git://repo.or.cz/guilt/mob.git mob
 
 Thoughts?
 
 Regarding the Change git branch when patches are applied feature,
 it has saved me a number of times since I implemented it. I've been
 using it extensively, and have not had any problems with it.
 
 Nevertheless, for backwards compatibility with the currently
 released guilt version I think it should be conditional, and
 disabled per default for one full release cycle.  I've implemented
 this. My code is available from git://repo.or.cz/guilt/ceder.git
 
 The following commits are not included in your list:
 
 a194375 Added guilt.reusebranch configuration option.
 1dd97bd Minor testsuite fix.
 640caee The tests should not fail if guilt.diffstat is set.

At $WORK, we started doing thorough reviews before committing.  I'm kinda
sold on this feature.  I agree with the off-by-default config flag.

 I don't want Guilt to fork. Jeff, it would be really great if
 you could set up a public repo again!

Yep.  I'm trying to reclaim control of the repo.or.cz guilt repo... I no
longer have access to jsi...@cs.sunysb.edu and I don't remember the
password.

Jeff.

-- 
NT is to UNIX what a doughnut is to a particle accelerator.
--
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: [RFC] git rm -u

2013-01-20 Thread Junio C Hamano
Junio C Hamano gits...@pobox.com writes:

 Matthieu Moy matthieu@grenoble-inp.fr writes:

 git add -u is one of the only exceptions (with git grep). I consider
 this as a bug, and think this should be changed. This has been discussed
 several times here, but no one took the time to actually do the change

 Did we ever agree that it is a good change to begin with?  Pointers?

I think you can guess but I no longer need pointers.  Others may
still be helped, though.

The argument IIRC boils down to

 - git add -u was made a whole-tree operation when there weren't
   the :/ magic pathspec, but add -u is very often something you
   want to do whole tree, and (cd ../../..; git add -u) or git
   add -u ../../.. are too cumbersome to type.

 - git add -u . to limit it to the current directory is easy to
   type.

 - As we have the from the root magic pathspec these days,
   requiring git add -u :/ when the user really means to add
   everything is no longer too much of a burden, but if we suddenly
   changed git add -u to mean git add -u ., that is too much of
   a change in the semantics.

--
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 0/7] guilt patches, including git 1.8 support

2013-01-20 Thread Per Cederqvist

On 01/16/13 03:26, Jonathan Nieder wrote:

Hi Jeff and other guilty parties,

I collected all the guilt patches I could find on-list and added one
of my own.  Completely untested, except for running the regression
tests.  These are also available via git protocol from

   git://repo.or.cz/guilt/mob.git mob

Thoughts?


Regarding the Change git branch when patches are applied feature,
it has saved me a number of times since I implemented it. I've been
using it extensively, and have not had any problems with it.

Nevertheless, for backwards compatibility with the currently
released guilt version I think it should be conditional, and
disabled per default for one full release cycle.  I've implemented
this. My code is available from git://repo.or.cz/guilt/ceder.git

The following commits are not included in your list:

a194375 Added guilt.reusebranch configuration option.
1dd97bd Minor testsuite fix.
640caee The tests should not fail if guilt.diffstat is set.

I don't want Guilt to fork. Jeff, it would be really great if
you could set up a public repo again!

/ceder


Jonathan Nieder (1):
   Drop unneeded git version check.

Per Cederqvist (6):
   get rid of cat: write error: Broken pipe error message
   The tests should not fail if log.date or log.decorate are set.
   Testsuite: get rid of Broken pipe errors from yes.
   Handle empty patches and patches with only a header.
   Fix fatal guilt graph error in sha1sum invocation.
   Change git branch when patches are applied.

  Documentation/guilt.7 |   4 +
  guilt |  73 +---
  guilt-branch  |  12 +-
  guilt-commit  |   7 +
  guilt-import-commit   |   4 +-
  guilt-repair  |   7 +-
  os.Darwin |   7 +-
  os.Linux  |   7 +-
  os.SunOS  |   7 +-
  regression/scaffold   |   7 +-
  regression/t-029.sh   |   6 +-
  regression/t-052.out  |  24 +--
  regression/t-052.sh   |   7 +-
  regression/t-061.out  | 468 ++
  regression/t-061.sh   | 148 
  15 files changed, 743 insertions(+), 45 deletions(-)
  create mode 100644 regression/t-061.out
  create mode 100755 regression/t-061.sh



--
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 0/2] Hiding some refs in ls-remote

2013-01-20 Thread Junio C Hamano
Junio C Hamano gits...@pobox.com writes:

 Jeff King p...@peff.net writes:

 [uploadPack]
 hiderefs = refs/changes

 Would you want to do the same thing on receive-pack? It could benefit
 from the same reduction in network cost (although it tends to be invoked
 less frequently than upload-pack).
 ...
 As I said, I view this primarily as solving the cluttering issue.
 The use of hiderefs to hide these refs that point at objects I do
 not consider belong to my repository from the pushers equally makes
 sense as such, I think.

Now that raises one question.  Should this be transfer.hiderefs that
governs both upload-pack and receive-pack?  I tend to think the
answer is yes.

It may even make sense to have git push honor it, excluding them
from git push --mirror (or git push --all if some of the
branches are hidden); I haven't thought things through, 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


Re: [RFC] git rm -u

2013-01-20 Thread Martin von Zweigbergk
On Sun, Jan 20, 2013 at 1:27 PM, Junio C Hamano gits...@pobox.com wrote:
 Junio C Hamano gits...@pobox.com writes:

 Matthieu Moy matthieu@grenoble-inp.fr writes:

 git add -u is one of the only exceptions (with git grep). I consider
 this as a bug, and think this should be changed. This has been discussed
 several times here, but no one took the time to actually do the change

  - As we have the from the root magic pathspec these days,
requiring git add -u :/ when the user really means to add
everything is no longer too much of a burden, but if we suddenly
changed git add -u to mean git add -u ., that is too much of
a change in the semantics.

And I think someone (Jeff?) pointed out that that last part is even
more true for git clean, which also currently works on the current
directory if not told otherwise.
--
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-cvsimport-3 and incremental imports

2013-01-20 Thread Eric S. Raymond
John Keeping j...@keeping.me.uk:
 I don't think there is any way to solve this without giving cvsps more
 information, probably the last commit time for all git branches, but
 perhaps I'm missing a fast-import feature that can help solve this
 problem.

Yes, you are.  The magic incantation is

from refs/heads/branch^0

I've just pushed a cvsps-3.9 with an -i option that generates these at
each branch root.  Combine it with -d and you get incremental
fast-export.

You get to integrate this.  I think the transition strategy Junio
has chosen is seriously mistaken, leading to unnecessary grief for users
who will be fooled into thinking it's OK to still use cvsps-2.x. Because
I do not wish to encourage or endorse this mistake and am tired of arguing
against stubborn determination to do the wrong thing, I am not going to 
sink more effort into the git project's end of the CVS-lifting problem.
There are too many better uses for my time.
-- 
a href=http://www.catb.org/~esr/;Eric S. Raymond/a
--
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-cvsimport-3 and incremental imports

2013-01-20 Thread Jonathan Nieder
Eric S. Raymond wrote:

 You get to integrate this.  I think the transition strategy Junio
 has chosen is seriously mistaken, leading to unnecessary grief for users
 who will be fooled into thinking it's OK to still use cvsps-2.x.

So our choices are:

 a. support current users, offend ESR, don't benefit from ESR
improvements

 b. give up on current users, please ESR, benefit from ESR
improvements

 c. some option yet undiscovered

In that case, (c) sounds like our best bet.  Do I understand
correctly?

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


Re: git-cvsimport-3 and incremental imports

2013-01-20 Thread Jonathan Nieder
Eric S. Raymond wrote:

 You get to integrate this.  I think the transition strategy Junio
 has chosen is seriously mistaken, leading to unnecessary grief for users
 who will be fooled into thinking it's OK to still use cvsps-2.

Ah, I missed a detail on first reading.  I think there has been a
small misunderstanding.

Junio proposed a transition strategy, but I don't think it's fair to
say he has chosen it without discussion or is imposing it on you.  If
you or someone else comes up with a better transition strategy, you
are free to completely ignore Junio's proposal.  If the affected users
generally prefer your alternate proposal, in my experience that means
it will be integrated.

Hoping that clarifies a little,
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


Re: git-cvsimport-3 and incremental imports

2013-01-20 Thread Junio C Hamano
Jonathan Nieder jrnie...@gmail.com writes:

 Eric S. Raymond wrote:

 You get to integrate this.  I think the transition strategy Junio
 has chosen is seriously mistaken, leading to unnecessary grief for users
 who will be fooled into thinking it's OK to still use cvsps-2.x.

 So our choices are:

  a. support current users, offend ESR, don't benefit from ESR
 improvements

  b. give up on current users, please ESR, benefit from ESR
 improvements

  c. some option yet undiscovered

 In that case, (c) sounds like our best bet.  Do I understand
 correctly?

 Sigh,
 Jonathan

Isn't (c) is to just build on cvsimport-2 and cvsimport-3 combo?

If Eric does not want to get involved in cvsimport-2 (and cvsps2),
that is perfectly fine.  We have the beginning of cvsimport-3 code
that was released with Sign-off, and as long as cvsps3 produces a
more corrrect output stream (either traditional cvsps2 style or as
a fast-import stream) than cvsps2 conversion describes, cvsimport-3
can get the full benefit of his work, no?

I do not think that Eric will be the only person who understands
cvsps3 output who can fix bugs that may potentially still exist in
cvsimport-3 code [*1*].

We live in real world, and distro inertia makes it likely that a new
version of git that does not work for people who have been happy
with cvsps2 will get resistance from them, when they do not trust
the 0.x releases of a new piece of software cvsps3 that happens to
have a name similar to what they have been shipping, i.e. cvsps2.
Shipping such a crippled Git will not be an effective way to promote
adoption of cvsps3.

[Footnote]

*1* This of course assumes Eric's two major claims are true, that
is, (1) cvsimport-3 is already mature and better than cvsimport-2,
and (2) the code is so simple that it does not even need its own
tests as long as the front-end conversion that happens at the cvsps3
end is tested well.  Choosing b. will have to assume them to be true
anyway, so I do not think it is a big loss to rely on the same
assumptions and choose b. from our point of 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: git-cvsimport-3 and incremental imports

2013-01-20 Thread Junio C Hamano
Junio C Hamano gits...@pobox.com writes:

 ..., so I do not think it is a big loss to rely on the same
 assumptions and choose b. from our point of view.

Of course the last sentence is a typo: choose c. is what I meant.
--
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] mergetools: Add tortoisegitmerge helper

2013-01-20 Thread Junio C Hamano
Sven Strickroth sven.strickr...@tu-clausthal.de writes:

 - The TortoiseGit team renamed TortoiseMerge.exe to TortoiseGitMerge.exe
   (starting with 1.8.0) in order to make clear that this one has special
   support for git and prevent confusion with the TortoiseSVN TortoiseMerge
   version.
 - The tortoisemerge mergetool does not work with filenames which have
   a space in it. Fixing this required changes in git and also in
   TortoiseGitMerge; see https://github.com/msysgit/msysgit/issues/57.

 The new tortoisegitmerge helper was added so that people can still use
 TortoiseMerge from TortoiseSVN (and older TortoiseGit versions).

 Signed-off-by: Sven Strickroth em...@cs-ware.de
 Reported-by: Sebastian Schuberth sschube...@gmail.com
 ---

Applying: mergetools: Add tortoisegitmerge helper
fatal: corrupt patch at line 56

That comes from here:

 diff --git a/Documentation/merge-config.txt b/Documentation/merge-config.txt
 index 9bb4956..a047646 100644
 --- a/Documentation/merge-config.txt
 +++ b/Documentation/merge-config.txt
 @@ -55,9 +55,9 @@ merge.tool::
   Controls which merge resolution program is used by
   linkgit:git-mergetool[1].  Valid built-in values are: araxis,
   bc3, diffuse, ecmerge, emerge, gvimdiff, kdiff3, meld,
 - opendiff, p4merge, tkdiff, tortoisemerge, vimdiff
 - and xxdiff.  Any other value is treated is custom merge tool
 - and there must be a corresponding mergetool.tool.cmd option.
 + opendiff, p4merge, tkdiff, tortoisegitmerge, tortoisemerge,
 + vimdiff and xxdiff.  Any other value is treated is custom merge
 + tool and there must be a corresponding mergetool.tool.cmd option.
   merge.verbosity::
   Controls the amount of output shown by the recursive merge
 diff --git a/contrib/completion/git-completion.bash 
 b/contrib/completion/git-completion.bash

Notice that we have three pre-context lines but only two
post-context lines for this hunk.  There is one context line missing
at the end of this hunk.

I'd usually try to queue a corrupt patch by manually fixing up when
it is a trivial corruption, but a corruption that _loses_ lines is
too dangerous to be handled that way.  There may be additions in
other hunks you wanted to make that were lost for the same reason
why the post-context line was lost here, and my fix-up would end up
committing a wrong patch.

Please investigate how this happened, and re-send after hearing
reviews from others.

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


Re: git-cvsimport-3 and incremental imports

2013-01-20 Thread Eric S. Raymond
Jonathan Nieder jrnie...@gmail.com:
 Junio proposed a transition strategy, but I don't think it's fair to
 say he has chosen it without discussion or is imposing it on you.

I have said everything I could about the bad effects of encouraging
people to continue to use cvsps-2.x, it didn't budge Junio an
inch, and I'm tired of fighting about it.  Quibbling about the 
semantics of 'impose' will neither change these facts nor make
me any less frustrated with the outcome.

I will continue to do what I can to make cvsps-3.x and cvs-fast-export as
bug-free as possible, given the innate perverseness of CVS.  They
won't be perfect; they will be *better*.
-- 
a href=http://www.catb.org/~esr/;Eric S. Raymond/a
--
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 1/2] git-svn: Add test for git-svn repositories with a gitdir link

2013-01-20 Thread Barry Wardell
Signed-off-by: Barry Wardell barry.ward...@gmail.com
---
 t/t9100-git-svn-basic.sh | 8 
 1 file changed, 8 insertions(+)

diff --git a/t/t9100-git-svn-basic.sh b/t/t9100-git-svn-basic.sh
index 749b75e..4fea8d9 100755
--- a/t/t9100-git-svn-basic.sh
+++ b/t/t9100-git-svn-basic.sh
@@ -306,5 +306,13 @@ test_expect_success 'git-svn works in a bare repository' '
git svn fetch ) 
rm -rf bare-repo
'
+test_expect_success 'git-svn works in in a repository with a gitdir: link' '
+   mkdir worktree gitdir 
+   ( cd worktree 
+   git svn init $svnrepo 
+   git init --separate-git-dir ../gitdir 
+   git svn fetch ) 
+   rm -rf worktree gitdir
+   '
 
 test_done
-- 
1.8.0

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


[PATCH 2/2] git-svn: Simplify calculation of GIT_DIR

2013-01-20 Thread Barry Wardell
Since git-rev-parse already checks for the $GIT_DIR environment
variable and that it returns an actual git repository, there is no
need to repeat the checks again here.

This also fixes a problem where git-svn did not work in cases where
.git was a file with a gitdir: link.

Signed-off-by: Barry Wardell barry.ward...@gmail.com
---
 git-svn.perl | 36 +---
 1 file changed, 13 insertions(+), 23 deletions(-)

diff --git a/git-svn.perl b/git-svn.perl
index bd5266c..3bcd769 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -61,8 +61,6 @@ my $cmd_dir_prefix = eval {
command_oneline([qw/rev-parse --show-prefix/], STDERR = 0)
 } || '';
 
-my $git_dir_user_set = 1 if defined $ENV{GIT_DIR};
-$ENV{GIT_DIR} ||= '.git';
 $Git::SVN::Ra::_log_window_size = 100;
 
 if (! exists $ENV{SVN_SSH}  exists $ENV{GIT_SSH}) {
@@ -325,27 +323,19 @@ for (my $i = 0; $i  @ARGV; $i++) {
 };
 
 # make sure we're always running at the top-level working directory
-unless ($cmd  $cmd =~ /(?:clone|init|multi-init)$/) {
-   unless (-d $ENV{GIT_DIR}) {
-   if ($git_dir_user_set) {
-   die GIT_DIR=$ENV{GIT_DIR} explicitly set, ,
-   but it is not a directory\n;
-   }
-   my $git_dir = delete $ENV{GIT_DIR};
-   my $cdup = undef;
-   git_cmd_try {
-   $cdup = command_oneline(qw/rev-parse --show-cdup/);
-   $git_dir = '.' unless ($cdup);
-   chomp $cdup if ($cdup);
-   $cdup = . unless ($cdup  length $cdup);
-   } Already at toplevel, but $git_dir not found\n;
-   chdir $cdup or die Unable to chdir up to '$cdup'\n;
-   unless (-d $git_dir) {
-   die $git_dir still not found after going to ,
-   '$cdup'\n;
-   }
-   $ENV{GIT_DIR} = $git_dir;
-   }
+if ($cmd  $cmd =~ /(?:clone|init|multi-init)$/) {
+   $ENV{GIT_DIR} ||= .git;
+} else {
+   git_cmd_try {
+   $ENV{GIT_DIR} = command_oneline([qw/rev-parse --git-dir/]);
+   } Unable to find .git directory\n;
+   my $cdup = undef;
+   git_cmd_try {
+   $cdup = command_oneline(qw/rev-parse --show-cdup/);
+   chomp $cdup if ($cdup);
+   $cdup = . unless ($cdup  length $cdup);
+   } Already at toplevel, but $ENV{GIT_DIR} not found\n;
+   chdir $cdup or die Unable to chdir up to '$cdup'\n;
$_repository = Git-repository(Repository = $ENV{GIT_DIR});
 }
 
-- 
1.8.0

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


[PATCH v3 0/2] Make git-svn work with gitdir links

2013-01-20 Thread Barry Wardell
These patches fix a bug which prevented git-svn from working with repositories
which use gitdir links.

Changes since v2:
 - Rebased onto latest master.
 - Added test case which verifies that the problem has been fixed.
 - Fixed problems with git svn (init|clone|multi-init).
 - All git-svn test cases now pass (except two in t9101 which also failed
   before these patches).

Barry Wardell (2):
  git-svn: Add test for git-svn repositories with a gitdir link
  git-svn: Simplify calculation of GIT_DIR

 git-svn.perl | 36 +---
 t/t9100-git-svn-basic.sh |  8 
 2 files changed, 21 insertions(+), 23 deletions(-)

-- 
1.8.0

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


Re: [PATCH 0/3] fixup remaining cvsimport tests

2013-01-20 Thread Chris Rorvick
On Sun, Jan 20, 2013 at 2:17 PM, Chris Rorvick ch...@rorvick.com wrote:
 On Sun, Jan 20, 2013 at 12:57 PM, Junio C Hamano gits...@pobox.com wrote:
 John Keeping j...@keeping.me.uk writes:

 On Sun, Jan 20, 2013 at 09:22:03AM -0600, Chris Rorvick wrote:
 On Sun, Jan 20, 2013 at 6:58 AM, John Keeping j...@keeping.me.uk wrote:
 On Thu, Jan 10, 2013 at 10:27:16PM -0600, Chris Rorvick wrote:
 These patchs apply on top of of Eric Raymond's cvsimport patch.  7 of 15
 tests in t9600 fail, one of which is fixed w/ a cvsps patch I've sent
 to Eric (fixes revision map.)

 Did you post the fix for the revision map publicly anywhere?

 It's in Eric's repo and included in version 3.8:

 https://gitorious.org/cvsps/cvsps/commit/abe81e1775a8959291f629029513d1b7160bbde6

 Thanks.  For some reason I thought the fix would be to
 git-cvsimport-3.py.  Obviously I should have read more carefully.

 Sorry for the noise.

 This is not a noise, though.

 Chris, how would we want to proceed?  I'd prefer at some point to
 see cvsimport-3 to be in sync when the one patched and tested in
 Eric's repository is proven enough.  Will Eric be the gatekeeper, or
 will you be sending patches this way as well?

 I probably won't be sending any more patches on this.  My hope was to
 get cvsimport-3 (w/ cvsps as the engine) in a state such that one
 could transition from the previous version seamlessly.  But the break
 in t9605 has convinced me this is not worth the effort--even in this
 trivial case cvsps is broken.  The fuzzing logic aggregates commits
 into patch sets that have timestamps within a specified window and
 otherwise matching attributes.  This aggregation causes file-level
 commit timestamps to be lost and we are left with a single timestamp
 for the patch set: the minimum for all contained CVS commits.  When
 all commits have been processed, the patch sets are ordered
 chronologically and printed.

 The problem is that is that a CVS commit is rolled into a patch set
 regardless of whether the patch set's timestamp falls within the
 adjacent CVS file-level commits.  Even worse, since the patch set
 timestamp changes as subsequent commits are added (i.e., it's always
 picking the earliest) it is potentially indeterminate at the time a
 commit is added.  The result is that file revisions can be reordered
 in resulting Git import (see t9605.)  I spent some time last week
 trying to solve this but I coudln't think of anything that wasn't a
 substantial re-work of the code.

 I have never used cvs2git, but I suspect Eric's efforts in making it a
 potential backend for cvsimport are a better use of time.

 Chris

Hi Eric,

I noticed you were taken off this thread.  As I mention above, I
looked into the bug tested in the t9605 patch Junio applied on top of
your cvsimport patch.  The test was actually written for master to
test the Perl/cvsps2 import, but with minor modification you can
verify the problem still exists in the 3.x versions of cvsps.

I think the email above explains the problem pretty well.  It's not
clear to me what all the nastiness is that you've resolved with cvsps
since taking over; I've been mostly concerned with importing an almost
branchless repository which I thought avoided the types of problems
you were addressing.  But this bug can actually cause Git's main
import branch to become inconsistent with CVS HEAD and you don't have
to do anything too weird to get hit by it.

Fixing this seemed like it would require splitting the processing out
into a couple phases and would be a fair amount of work, but maybe I'm
just not looking at the problem right.

Chris
--
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] unpack-trees: do not abort when overwriting an existing file with the same content

2013-01-20 Thread Duy Nguyen
On Mon, Jan 21, 2013 at 1:35 AM, Junio C Hamano gits...@pobox.com wrote:
 Nguyễn Thái Ngọc Duy  pclo...@gmail.com writes:

 + /*
 +  * If it has the same content that we are going to write down,

 write down???

hmm.. overwrite then.

 +  * there's no point in complaining. We still overwrite it in the
 +  * end though. Permission is not checked so it may be lost.
 +  */

 That is a regression, isn't it?  Is it too cumbersome to avoid
 losing the permission bits by stopping in that case?

I'm not sure how to deal with this case. (Lack of) Executable bit can
be easily restored (unlike file content) if we give the user the list
of changed files. On the other hand, not everybody runs git with a
huge scrollback buffer and warnings can be lost. I guess abort is a
safe choice.
-- 
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: [PULL] Module fixes, and a virtio block fix.

2013-01-20 Thread Linus Torvalds
On Sun, Jan 20, 2013 at 5:32 PM, Rusty Russell ru...@rustcorp.com.au wrote:

 Due to the delay on git.kernel.org, git request-pull fails.  It *looks*
 like it succeeds, except the warning, but (as we learned last time I
 screwed up), it doesn't put the branchname because it can't know.

I think this should be fixed in modern git versions.

And it sure as hell knows the proper tag name, since you *gave* it the
name and it used it for generating the actual contents. The fact that
some versions then screw that up and re-write the tag-name to
something randomly matching that isn't a tag was just a bug.

 For want of a better solution, I'll now resort to sending pull requests
 with the anti-social gitolite URL in it, like so:

That's even worse, fwiw. It means that the pull request address makes
no sense to anybody who doesn't have a kernel.org address, and then
I'm forced to just edit things by hand instead to not pollute the
kernel changelog history with crap.

Junio, didn't git request-pull get fixed so that it *warns* about
missing tagnames/branches, but never actually corrupts the pull
request? Or did it just get fixed to be a hard error instead of
corrupting things? Because this is annoying.

Linus
--
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 0/2] Hiding some refs in ls-remote

2013-01-20 Thread Duy Nguyen
On Sun, Jan 20, 2013 at 2:16 AM, Junio C Hamano gits...@pobox.com wrote:
 Duy Nguyen pclo...@gmail.com writes:

 Should the client side learn how to list hidden refs too? I'm thinking
 of an extreme case where upload-pack advertises nothing (or maybe just
 refs/heads/master) and it's up to the client to ask for the ref
 selection it's interested in. upload-pack may need more updates to do
 that, I think.

 What you are talking about is a different goal.

 Look at this as a mechanism for the repository owner to control the
 clutter in what is shown to the intended audience of what s/he
 publishes in the repository.  Network bandwidth reduction of
 advertisement is a side effect of clutter reduction, and not
 necessarily the primary goal.

Probably stupid question: does gitnamespaces.txt attempt to achieve
the same? The document says smart http supports passing namespace,
nothing about git protocol so I guess we need some extension in
upload-pack (or git-daemon) for specifying namespace over git
protocol.
-- 
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: git interactive rebase 'consume' command

2013-01-20 Thread Jeff King
On Sun, Jan 20, 2013 at 12:23:41PM -0800, Junio C Hamano wrote:

 In any case, the intent of the author timestamp is to record the
 time the author _started_ working on the change and came up with an
 initial, possibly a partial, draft.  It does not record the time
 when the commit was finalized.  git commit --amend preserves the
 original timestamp, doesn't it?

And we have --reset-author if you want to do that. It seems like just
doing git commit --amend --reset-author at the end[1] would solve the
original problem.  Perhaps that is something that we could better
support directly from the instruction sheet.

-Peff

[1] or after an edit break in the instruction sheet, if it is in the
middle of a set of commits
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v3 0/2] Make git-svn work with gitdir links

2013-01-20 Thread Junio C Hamano
Barry Wardell barry.ward...@gmail.com writes:

 These patches fix a bug which prevented git-svn from working with repositories
 which use gitdir links.

 Changes since v2:
  - Rebased onto latest master.
  - Added test case which verifies that the problem has been fixed.
  - Fixed problems with git svn (init|clone|multi-init).
  - All git-svn test cases now pass (except two in t9101 which also failed
before these patches).

 Barry Wardell (2):
   git-svn: Add test for git-svn repositories with a gitdir link
   git-svn: Simplify calculation of GIT_DIR

Thanks for your persistence ;-) As this is a pretty old topic, I'll
give two URLs for people who are interested to view the previous
threads:

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

You would want to mark it as test_expect_failure in the first patch
and then flip it to text_expect_success in the second patch where
you fix the breakage?  Otherwise, after applying the first patch,
the testsuite will break needlessly.

I've Cc'ed Eric Wong (git-svn maintainer) and CMN who helped in the
previous round.  If the only issue is the above success/failure one,
I think Eric can tweak the patches while applying them (I didn't
look at the changes carefully myself, by the way).

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


Re: [PULL] Module fixes, and a virtio block fix.

2013-01-20 Thread Junio C Hamano
Linus Torvalds torva...@linux-foundation.org writes:

 On Sun, Jan 20, 2013 at 5:32 PM, Rusty Russell ru...@rustcorp.com.au wrote:

 Due to the delay on git.kernel.org, git request-pull fails.  It *looks*
 like it succeeds, except the warning, but (as we learned last time I
 screwed up), it doesn't put the branchname because it can't know.

 I think this should be fixed in modern git versions.
 ...
 Junio, didn't git request-pull get fixed so that it *warns* about
 missing tagnames/branches, but never actually corrupts the pull
 request? Or did it just get fixed to be a hard error instead of
 corrupting things? Because this is annoying.

What you mean by corrupt is not clear to me, but the last change
to the script is from 6 months ago to solve a related (perhaps the
same?) problem, which should be in v1.7.11.2 and later:

request-pull: really favor a matching tag

After tagging the tip of dev branch with a for-linus tag and
pushing both out, running

$ git request-pull $url $last_release dev

would produce an output asking the 'dev' branch of $url to be
pulled, because that is what the user asked the message to say.

We already detect this situation locally and include the
contents of the tag in the output; if the $url has that tag,
favor that tag (i.e. for-linus) in the generated message over
the branch name the user gave us (i.e. dev) from the command
line, to make the output look more consistent.
--
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


fgdrf

2013-01-20 Thread chase2013
tgredgtrfb



--
View this message in context: 
http://git.661346.n2.nabble.com/fgdrf-tp7575606.html
Sent from the git mailing list archive at Nabble.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: [PULL] Module fixes, and a virtio block fix.

2013-01-20 Thread Linus Torvalds
On Sun, Jan 20, 2013 at 6:00 PM, Junio C Hamano gits...@pobox.com wrote:

 What you mean by corrupt is not clear to me

Some versions would just silently change the actual name you were using.

So if you said for-linus, it might change it to linus, just
because that branch happened to have the same SHA1 commit ID.

That's not right.

Other versions would replace the for-linus with **missing-branch**
because for-linus hadn't mirrored out yet.

That's not right either.

Basically, if git request-pull is given a branch/tag name, that is
the only valid output (although going from branch-tag *might* be
acceptable). The whole verify that it actually exists on the remote
side must never *ever* actually change the message itself, it should
just cause a warning outside of the message.

I can't say from the commit message whether that's the thing that
fixed it or not, but at least some people stopped sending me broken
pull requests after updating to git. I'm just not sure which of the
two different failure cases they happened to have (Rusty seems to have
hit both)

Linus
--
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 0/3] fixup remaining cvsimport tests

2013-01-20 Thread Eric S. Raymond
  I probably won't be sending any more patches on this.  My hope was to
  get cvsimport-3 (w/ cvsps as the engine) in a state such that one
  could transition from the previous version seamlessly.  But the break
  in t9605 has convinced me this is not worth the effort--even in this
  trivial case cvsps is broken.  The fuzzing logic aggregates commits
  into patch sets that have timestamps within a specified window and
  otherwise matching attributes.  This aggregation causes file-level
  commit timestamps to be lost and we are left with a single timestamp
  for the patch set: the minimum for all contained CVS commits.  When
  all commits have been processed, the patch sets are ordered
  chronologically and printed.
 
  The problem is that is that a CVS commit is rolled into a patch set
  regardless of whether the patch set's timestamp falls within the
  adjacent CVS file-level commits.  Even worse, since the patch set
  timestamp changes as subsequent commits are added (i.e., it's always
  picking the earliest) it is potentially indeterminate at the time a
  commit is added.  The result is that file revisions can be reordered
  in resulting Git import (see t9605.)  I spent some time last week
  trying to solve this but I coudln't think of anything that wasn't a
  substantial re-work of the code.

I've lost who was who in the comment thread, but I think it is rather likely
that the above diagnosis is correct in every respect.

I won't know for certain until I finish the test suite and apply it to
all three tools (cvsps, cvs2git, cvs-fast-export) but what I've seen
of their code indicates that cvsps has the weakest changeset analysis of
the three, even after my fixes.

  I have never used cvs2git, but I suspect Eric's efforts in making it a
  potential backend for cvsimport are a better use of time.

Agreed.  I didn't add multiengine support to csvsimport at random or
just because Heiko Vogt was bugging me about parsecvs.  I was
half-expecting cvsps to manifest a showstopper like this - hoping it
wouldn't, but hedging against the possibility by making alternate
engines easy to plug into git-cvsimport seemed like a *really good
idea* from the beginning of my work on it.  Sometimes being that kind
of right really sucks.

While I am going to have a try at modifying cvsps to make Chris's
t9605 case work, I'm going to strictly limit the amount of time I
spend on that effort since (as you imply) it is fairly likely this
would be throwing good money after bad.

 Fixing this seemed like it would require splitting the processing out
 into a couple phases and would be a fair amount of work, but maybe I'm
 just not looking at the problem right.

Actually I think you've called it *exactly* right.  The job has to be 
done in multiple clique-spitting phases - that's why cvs2git has 7 passes
(though a few of those, perhaps as many as 3, are artifactual).

This is why the next step in my current work plan for CVS-related stuff will
be unbundling my test suite from the cvsps tree and running it to see if
cvs-fast-export dominates cvsps.  

I'm expecting that it will, in which case my plan will be to salvage
the CVS client code out of cvsps (*that* part is quite good - fast,
clean, effective) gluing it to the better analysis stage in
cvs-fast-export, and then shooting cvsps through the head and burying
it behind the barn.
-- 
a href=http://www.catb.org/~esr/;Eric S. Raymond/a
--
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: [PULL] Module fixes, and a virtio block fix.

2013-01-20 Thread Rusty Russell
Linus Torvalds torva...@linux-foundation.org writes:

 On Sun, Jan 20, 2013 at 5:32 PM, Rusty Russell ru...@rustcorp.com.au wrote:

 Due to the delay on git.kernel.org, git request-pull fails.  It *looks*
 like it succeeds, except the warning, but (as we learned last time I
 screwed up), it doesn't put the branchname because it can't know.

 I think this should be fixed in modern git versions.

 And it sure as hell knows the proper tag name, since you *gave* it the
 name and it used it for generating the actual contents. The fact that
 some versions then screw that up and re-write the tag-name to
 something randomly matching that isn't a tag was just a bug.

I'm confused.  The default argument is HEAD: what does it know about tag
names?

git request-pull master korg

The bug is that if it can't find that commit at the remote end, it
still generates a valid-looking request (with a warning at the end),
where it guesses you're talking about the master branch.

 For want of a better solution, I'll now resort to sending pull requests
 with the anti-social gitolite URL in it, like so:

 That's even worse, fwiw. It means that the pull request address makes
 no sense to anybody who doesn't have a kernel.org address, and then
 I'm forced to just edit things by hand instead to not pollute the
 kernel changelog history with crap.

Since I use a wrapper script now for your pull requests I can use sed to
unscrew it:

[alias]
for-linus = !check-commits  TAGNAME=`git symbolic-ref HEAD | cut -d/ 
-f3`-for-linus  git tag -f -u D1ADB8F1 $TAGNAME HEAD  git push korg tag 
$TAGNAME  git request-pull master korg | sed 
s,gitol...@ra.kernel.org:/pub,git://git.kernel.org/pub,  git log --stat 
--reverse master..$TAGNAME | emails-from-log | grep -v 'rusty@rustcorp' | grep 
-v 'sta...@kernel.org' | sed 's/^/Cc: /'

 Junio, didn't git request-pull get fixed so that it *warns* about
 missing tagnames/branches, but never actually corrupts the pull
 request? Or did it just get fixed to be a hard error instead of
 corrupting things? Because this is annoying.

Here: git version 1.7.10.4

Cheers,
Rusty.
--
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: [PULL] Module fixes, and a virtio block fix.

2013-01-20 Thread Linus Torvalds
On Sun, Jan 20, 2013 at 6:57 PM, Rusty Russell ru...@rustcorp.com.au wrote:

 I'm confused.  The default argument is HEAD: what does it know about tag
 names?

Ugh. I actually thought that if you give it the tag name directly (as
the end) it will use that.

But no. It figures it out with git describe --exact internally.
Regardless, if your HEAD is actually tagged, it *will* have the
tag-name in git-request-pull.

And it will have it based on your *local* repo, so the fact that it
hasn't been mirrored out yet doesn't really matter. git request-pull
knows that tag name regardless of mirroring issues.

 The bug is that if it can't find that commit at the remote end, it
 still generates a valid-looking request (with a warning at the end),
 where it guesses you're talking about the master branch.

It really shouldn't do that any more, but you seem to have the older
version with the bug.

At  least one of the annoying problems was fixed in the 1.7.11 series,
you have 1.7.10.

The nice thing about git is that it is *really* easy to upgrade. Just
fetch the sources, do make; make install all as a normal user, and
you do not need to worry about package management or distro issues or
any crap like that. It installs into your $(HOME)/bin, and as long as
your PATH has that first, you'll get it. I've long suggested that as
the workaround for distros having old versions (some more so than
others).

 Since I use a wrapper script now for your pull requests I can use sed to
 unscrew it:

 [alias]
 for-linus = !check-commits  TAGNAME=`git symbolic-ref HEAD | cut 
 -d/ -f3`-for-linus  git tag -f -u D1ADB8F1 $TAGNAME HEAD  git push korg 
 tag $TAGNAME  git request-pull master korg | sed 
 s,gitol...@ra.kernel.org:/pub,git://git.kernel.org/pub,  git log --stat 
 --reverse master..$TAGNAME | emails-from-log | grep -v 'rusty@rustcorp' | 
 grep -v 'sta...@kernel.org' | sed 's/^/Cc: /'

Heh. Ok. That will at least hide the breakage. But I suspect you could
fix it by just updating git.

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


Re: How to setup bash completion for alias of git command

2013-01-20 Thread Ping Yin
On Sun, Jan 20, 2013 at 7:14 PM, Jonathan Nieder jrnie...@gmail.com wrote:
 Hi Ping,

 Ping Yin wrote:

 However, in debian (testing, wheezy), it doesn't work

 $ gtlg orTAB
 gtlg or-bash: [: 1: unary operator expected
 -bash: [: 1: unary operator expected

 Yes, I can reproduce this.  git bisect tells me it was introduced
 by v1.7.6-rc0~65^2~4 (completion: remove unnecessary
 _get_comp_words_by_ref() invocations, 2011-04-28).  Since then, Felipe
 has done work to make reusing subcommand completion easy again, so you
 can do

 __git_complete gtlg _git_log


Thanks very much. by following your advice, it works now.

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


Re: [msysGit] Re: Version 1.8.1 does not compile on Cygwin 1.7.14

2013-01-20 Thread Torsten Bögershausen
On 20.01.13 12:06, Jonathan Nieder wrote:
 Torsten Bögershausen wrote:
 
 I wonder, if if we can go one step further:

 Replace
 #ifdef WIN32 /* Both MinGW and MSVC */
 [...]
 with
 #if defined(_MSC_VER)
 
 I thought Git for Windows was built using mingw, which doesn't define
 _MSC_VER?
 
 Puzzled,
 Jonathan
 
Yes,
After removing these lines in the git-compat-util.h of msysgit
v1.8.1 it still compiled.
So I start to speculate if the comment is still valid for mingw,
or if that was true in the old days and not now any more.

More investigation is needed, sorry for confusion.
/Torsten

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


components that are out of round links of london sale

2013-01-20 Thread moritai36
Ideals extremely stunning and really unpleasant, but i even now surrounding
the failure, was that failure is the mother of results. on the other hand,
quite a few fail to get a victory. this kind of is life in all his existence
to comprehensive all hungry glimpse, all the dreams, and then went to heaven
to go with you. how many individuals with out accomplishment and gray life
can be stated to be challenging function is not hungry. life is a lifestyle.
sadly, But however, than be joyful to death by death. when the sound came.
we have no time to full their back
[url=http://www.cheaplinksoflondonbracelet.co.uk/]links of london
bracelets[/url], we have time to transform it. don't know from what time do
you discover that also a want to be protected.mobile phone charms i truly
don't is sturdy, but considering that i have a, i grew quite sturdy.Feel
difficult to find your favorite Tiffany jewelry like earrings? Tiffany is
your best destination. Tiffany earrings are well known for their highest
quality and characteristic designs. We offer tiffany  Co silver earrings,
fashion earrings, hoop earrings, drop earrings,heart earrings , unique
tiffany earrings , dangle tiffany earrings and so on. We guarantee that all
our fashion tiffany earrings are at hotest price among on-line jewelry
stores..
http://www.cheaplinksoflondonbracelet.co.uk/ 



--
View this message in context: 
http://git.661346.n2.nabble.com/components-that-are-out-of-round-links-of-london-sale-tp7575616.html
Sent from the git mailing list archive at Nabble.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


pandora bracelets but by the time it has charms on

2013-01-20 Thread ninoriat22
I'm a man, a pretty common one particular at that, and as these kinds of
current obtaining has in no way been my sturdy position. So soon after
getting my other-50 percent a pair of wellies for Christmas final 12 months,
I quickly learned my lesson that this wasn't heading to be an acceptable
option this yr, and so had to do some analysis forward of Christmas
2010. Now, to make it less difficult for me soon after the Wellington
debacle, [url=http://www.buycheappandorabracelets.co.uk/]pandora uk[/url].
All effectively and beneficial, but as any of you who have ever Googled
charm bracelets or tried to brave the neighborhood jewellery store fronted
by pushy camp gross sales assistants will know, it's a minefield. 
http://www.buycheappandorabracelets.co.uk/
So I thought I would provide all of us out there the advantage of my
extensive analysis and (until finally just lately) pretty restricted but
expanding knowledge in the place.So very first, you have to negotiate all
the diverse possibilities out there, and there are a whole lot! Chamilia,
Nomination, Reality, Pandora, the record is seemingly endless. By far the
most secure alternative, and one particular of the most well-known by all
accounts, is Pandora. They are Danish designers who only retail their
merchandise by way of their own stores or via selected prime-stop jewellers.
Their ranges seem far more in depth than some of the other makes, the high
quality would seem wonderful, and the lifespan and longevity of their items
is what actually swung it for me... a
[url=http://www.buycheappandorabracelets.co.uk/]pandora bracelets[/url] is
following all meant to be build upon about a period of time, so you want to
know that you will be ready to add to it for some time to come, and I felt
far more assured of that with the Pandora variety than I did with any of the
other folks.
http://www.buycheappandorabracelets.co.uk/




--
View this message in context: 
http://git.661346.n2.nabble.com/pandora-bracelets-but-by-the-time-it-has-charms-on-tp7575617.html
Sent from the git mailing list archive at Nabble.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


pandora canada also advocate this as a implies of evenly

2013-01-20 Thread ninoriat22
Now there are some beautiful leather and restricted edition selections which
I think begin from just 30, all the way via to gold alternatives for a
little more than a thousand kilos. The silver or the silver with a gold
clasp are apparently the most common, but here's a word of suggestions
if at all doable, have your lady with you for the sizing of it.
[url=http://www.pandoraclub.org/]pandora bracelets[/url] but by the time it
has charms on it this wouldn't have been massive enough. That explained, the
outlets are fantastic with this, and if the size had been wrong, they would
have been joyful to alter it following the celebration.So as soon as you
have your bracelet, what else do you want? Effectively it would seem there
are one thing termed clips of which it's helpful (although not vital) to
have two. 

These clips sit equidistantly spaced opposite the clasp and let any charms
in the early days to sit neatly between them at the top rated of the
bracelet.[url=http://www.pandoraclub.org/]pandora canada[/url] also advocate
this as a implies of evenly distributing the excess weight of the bracelet
and I have to say this does make sense. They are priced from??25 upwards
relying on your decision of content, and I feel they're a should.
Furthermore, as these charm bracelet issues can be carrying a great deal of
value (both in cash and sentimental terms) quite quickly, I'd also propose a
security chain. Once more whilst they aren't totally needed they do look
incredibly quite, and you know that in the unlikely occasion of the clasp
coming loose, you have the backup of the chain. These begin from 70 relying
on how elaborate you want to be.Then of course come the charms, and I need
to acknowledge I've created very an addiction to purchasing these, browsing
a more two jewellers immediately after producing my authentic purchase, the
two of whom were similarly delightful and useful and not scary at all AJ
Parkes in Northwich, Cheshire and Silvertree in Lancaster, Lancashire. You
can actually get nearly something in any materials, with any stone, carrying
any sentiment. 

http://www.pandoraclub.org/ 



--
View this message in context: 
http://git.661346.n2.nabble.com/pandora-canada-also-advocate-this-as-a-implies-of-evenly-tp7575618.html
Sent from the git mailing list archive at Nabble.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: git-cvsimport-3 and incremental imports

2013-01-20 Thread Jonathan Nieder
Eric S. Raymond wrote:

 I have said everything I could about the bad effects of encouraging
 people to continue to use cvsps-2.x, it didn't budge Junio an
 inch, and I'm tired of fighting about it.

What I think you misunderstood is that Junio is not the person you
would have needed to convince.  (Nor is it me.)

[...]
 I will continue to do what I can to make cvsps-3.x and cvs-fast-export as
 bug-free as possible, given the innate perverseness of CVS.

That's all anyone could hope for. :)  Thanks.

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


Re: git-cvsimport-3 and incremental imports

2013-01-20 Thread Junio C Hamano
Eric S. Raymond e...@thyrsus.com writes:

 Jonathan Nieder jrnie...@gmail.com:
 Junio proposed a transition strategy, but I don't think it's fair to
 say he has chosen it without discussion or is imposing it on you.

 I have said everything I could about the bad effects of encouraging
 people to continue to use cvsps-2.x, it didn't budge Junio an
 inch, and I'm tired of fighting about it.  Quibbling about the 
 semantics of 'impose' will neither change these facts nor make
 me any less frustrated with the outcome.

I am not quite sure if I follow you.

The primary thing I am aiming for is to rob an excuse from people
and from their distros to block newer Git and cvsps3.  I've already
cited a few URLs where we can see cvsps3 is blocked with an excuse
it does not work with Git yet.

If we ship new version of Git that only works with cvsps3, we will
end up giving an excuse this version of Git no longer works with
cvsps2 for distro packagers whose cvsps distro maintainer is slower
than others to pick up cvsps3 for whatever reason.

You may care deeply about CVS conversion part of the system, but you
need to realize that majority of Git users do not care a whit about
cvsimport. I do not want to give those distros that ship stale cvsps
an excuse to pin their users at an old version of Git.

By shipping both cvsimport-2 and cvsimport-3, we will rob from these
distros the excuse to block shipping the version of Git that does
support cvsps3 output.  They can choose to update cvsps to 3.x and
disable cvsimport-2 altogether at the build time, or if their cvsps
distro maintainer is slow, they can ship both cvsimport-2 and -3 and
let the user install cvsps 3.x under their $HOME if they want.

If you want to abandon cvsps2 users, that is perfectly fine by me.
As long as cvsps3 and cvsimport-3 combo works, Git before this
series will have a _working_ cvsimport as far as I am concerned.

In other words, I am fine to add a paragraph at the top of the
Release Notes saying that

 (1) cvsps2 is no longer maintained;

 (2) using cvsps3 is the future direction for the users; and

 (3) if their distro is slow to adopt cvsps3, however, cvsimport can
 still be used with cvsps2, but bugs in it or cvsps2 are not
 expected to be fixed.

to nudge distros to adopt cvsps3.

 I will continue to do what I can to make cvsps-3.x and cvs-fast-export as
 bug-free as possible, given the innate perverseness of CVS.  They
 won't be perfect; they will be *better*.

Yes, that is what we want.
--
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-cvsimport-3 and incremental imports

2013-01-20 Thread Junio C Hamano
Junio C Hamano gits...@pobox.com writes:

 If you want to abandon cvsps2 users, that is perfectly fine by me.
 As long as cvsps3 and cvsimport-3 combo works, Git before this
 series will have a _working_ cvsimport as far as I am concerned.

The above obviously is Git _after_ this series.

Git before this series that only has cvsps2 support may be broken
and Git after this series, when used with cvsps2, may be broken, but
is broken the same way as before, so it is not a net loss.

The users of distros that are slow to update cvsps can still use
cvsimport-3 with cvsps3 that is manually installed, and the users of
distros that ship cvsps3 will use cvsimport-3 and they can migrate
away from cvsps2's breakage.
--
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