[PATCH 06/11] completion: zsh: trivial cleanups

2016-05-19 Thread Felipe Contreras
We don't need to override IFS, zsh has a native way of splitting by new
lines: the expansion flag (f).

Also, we don't need to split files by ':' or '='; that's only for words.

Signed-off-by: Felipe Contreras <felipe.contre...@gmail.com>
---
 contrib/completion/git-completion.zsh | 10 +++---
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/contrib/completion/git-completion.zsh 
b/contrib/completion/git-completion.zsh
index e10df7d..317b8eb 100644
--- a/contrib/completion/git-completion.zsh
+++ b/contrib/completion/git-completion.zsh
@@ -65,26 +65,22 @@ __gitcomp_nl ()
 {
emulate -L zsh
 
-   local IFS=$'\n'
compset -P '*[=:]'
-   compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0
+   compadd -Q -S "${4- }" -p "${2-}" -- ${(f)1} && _ret=0
 }
 
 __gitcomp_nl_append ()
 {
emulate -L zsh
 
-   local IFS=$'\n'
-   compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0
+   compadd -Q -S "${4- }" -p "${2-}" -- ${(f)1} && _ret=0
 }
 
 __gitcomp_file ()
 {
emulate -L zsh
 
-   local IFS=$'\n'
-   compset -P '*[=:]'
-   compadd -Q -p "${2-}" -f -- ${=1} && _ret=0
+   compadd -Q -p "${2-}" -f -- ${(f)1} && _ret=0
 }
 
 __git_zsh_bash_func ()
-- 
2.8.0+fc1

--
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 04/11] completion: zsh: don't hide ourselves

2016-05-19 Thread Felipe Contreras
There's no need to hide the fact that we are on zsh any more.

Signed-off-by: Felipe Contreras <felipe.contre...@gmail.com>
---
 contrib/completion/git-completion.zsh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.zsh 
b/contrib/completion/git-completion.zsh
index e255413..475705a 100644
--- a/contrib/completion/git-completion.zsh
+++ b/contrib/completion/git-completion.zsh
@@ -39,7 +39,7 @@ if [ -z "$script" ]; then
test -f $e && script="$e" && break
done
 fi
-ZSH_VERSION='' . "$script"
+. "$script"
 
 __gitcomp ()
 {
-- 
2.8.0+fc1

--
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 09/11] completion: zsh: fix for directories with spaces

2016-05-19 Thread Felipe Contreras
Signed-off-by: Felipe Contreras <felipe.contre...@gmail.com>
---
 contrib/completion/git-completion.zsh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.zsh 
b/contrib/completion/git-completion.zsh
index 1f786cc..28eaaed 100644
--- a/contrib/completion/git-completion.zsh
+++ b/contrib/completion/git-completion.zsh
@@ -24,7 +24,7 @@ if [ -z "$script" ]; then
local -a locations
local e
locations=(
-   $(dirname ${funcsourcetrace[1]%:*})/git-completion.bash
+   "$(dirname ${funcsourcetrace[1]%:*})"/git-completion.bash
'/etc/bash_completion.d/git' # fedora, old debian
'/usr/share/bash-completion/completions/git' # arch, ubuntu, 
new debian
'/usr/share/bash-completion/git' # gentoo
-- 
2.8.0+fc1

--
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 05/11] completion: remove zsh hack

2016-05-19 Thread Felipe Contreras
We don't want to override the 'complete()' function in zsh, which can be
used by bashcomp.

Reported-by: Mark Lodato <lod...@google.com>
Signed-off-by: Felipe Contreras <felipe.contre...@gmail.com>
---
 contrib/completion/git-completion.bash | 1 +
 contrib/completion/git-completion.zsh  | 6 --
 2 files changed, 1 insertion(+), 6 deletions(-)

diff --git a/contrib/completion/git-completion.bash 
b/contrib/completion/git-completion.bash
index 9cbae6f..6c338ae 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -2684,6 +2684,7 @@ __git_func_wrap ()
 # This is NOT a public function; use at your own risk.
 __git_complete ()
 {
+   test -n "$ZSH_VERSION" && return
local wrapper="__git_wrap${2}"
eval "$wrapper () { __git_func_wrap $2 ; }"
complete -o bashdefault -o default -o nospace -F $wrapper $1 
2>/dev/null \
diff --git a/contrib/completion/git-completion.zsh 
b/contrib/completion/git-completion.zsh
index 475705a..e10df7d 100644
--- a/contrib/completion/git-completion.zsh
+++ b/contrib/completion/git-completion.zsh
@@ -16,12 +16,6 @@
 #
 #  fpath=(~/.zsh $fpath)
 
-complete ()
-{
-   # do nothing
-   return 0
-}
-
 zstyle -T ':completion:*:*:git:*' tag-order && \
zstyle ':completion:*:*:git:*' tag-order 'common-commands'
 
-- 
2.8.0+fc1

--
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 07/11] completion: bash: cleanup cygwin check

2016-05-19 Thread Felipe Contreras
Avoid Yoda conditions, use test, and cleaner statement.

Signed-off-by: Felipe Contreras <felipe.contre...@gmail.com>
---
 contrib/completion/git-completion.bash | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/contrib/completion/git-completion.bash 
b/contrib/completion/git-completion.bash
index 6c338ae..398f3a7 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -2698,6 +2698,5 @@ __git_complete gitk __gitk_main
 # when the user has tab-completed the executable name and consequently
 # included the '.exe' suffix.
 #
-if [ Cygwin = "$(uname -o 2>/dev/null)" ]; then
+test "$(uname -o 2>/dev/null)" = "Cygwin" &&
 __git_complete git.exe __git_main
-fi
-- 
2.8.0+fc1

--
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 03/11] completion: bash: remove zsh wrapper

2016-05-19 Thread Felipe Contreras
It has been deprecated for more than three years. It's time to move on.

Signed-off-by: Felipe Contreras <felipe.contre...@gmail.com>
---
 contrib/completion/git-completion.bash | 64 --
 1 file changed, 64 deletions(-)

diff --git a/contrib/completion/git-completion.bash 
b/contrib/completion/git-completion.bash
index 5e2e590..9cbae6f 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -2672,70 +2672,6 @@ __gitk_main ()
__git_complete_revlist
 }
 
-if [[ -n ${ZSH_VERSION-} ]]; then
-   echo "WARNING: this script is deprecated, please see 
git-completion.zsh" 1>&2
-
-   autoload -U +X compinit && compinit
-
-   __gitcomp ()
-   {
-   emulate -L zsh
-
-   local cur_="${3-$cur}"
-
-   case "$cur_" in
-   --*=)
-   ;;
-   *)
-   local c IFS=$' \t\n'
-   local -a array
-   for c in ${=1}; do
-   c="$c${4-}"
-   case $c in
-   --*=*|*.) ;;
-   *) c="$c " ;;
-   esac
-   array[${#array[@]}+1]="$c"
-   done
-   compset -P '*[=:]'
-   compadd -Q -S '' -p "${2-}" -a -- array && _ret=0
-   ;;
-   esac
-   }
-
-   __gitcomp_nl ()
-   {
-   emulate -L zsh
-
-   local IFS=$'\n'
-   compset -P '*[=:]'
-   compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0
-   }
-
-   __gitcomp_file ()
-   {
-   emulate -L zsh
-
-   local IFS=$'\n'
-   compset -P '*[=:]'
-   compadd -Q -p "${2-}" -f -- ${=1} && _ret=0
-   }
-
-   _git ()
-   {
-   local _ret=1 cur cword prev
-   cur=${words[CURRENT]}
-   prev=${words[CURRENT-1]}
-   let cword=CURRENT-1
-   emulate ksh -c __${service}_main
-   let _ret && _default && _ret=0
-   return _ret
-   }
-
-   compdef _git git gitk
-   return
-fi
-
 __git_func_wrap ()
 {
local cur words cword prev
-- 
2.8.0+fc1

--
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 11/11] Revert "Update documentation occurrences of filename .sh"

2016-05-19 Thread Felipe Contreras
The original code was correct: the example location ~/.git-completion.sh
is correct, because it's not only used by Bash. And zstyle command in
Zsh should use that same location; the Bash script.

This reverts commit 0e5ed7cca3c51c821c2bb0465617e75d994f432f.

Signed-off-by: Felipe Contreras <felipe.contre...@gmail.com>
---
 contrib/completion/git-completion.bash | 4 ++--
 contrib/completion/git-completion.zsh  | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/contrib/completion/git-completion.bash 
b/contrib/completion/git-completion.bash
index 398f3a7..3224ae1 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -17,9 +17,9 @@
 #
 # To use these routines:
 #
-#1) Copy this file to somewhere (e.g. ~/.git-completion.bash).
+#1) Copy this file to somewhere (e.g. ~/.git-completion.sh).
 #2) Add the following line to your .bashrc/.zshrc:
-#source ~/.git-completion.bash
+#source ~/.git-completion.sh
 #3) Consider changing your PS1 to also show the current branch,
 #   see git-prompt.sh for details.
 #
diff --git a/contrib/completion/git-completion.zsh 
b/contrib/completion/git-completion.zsh
index 28eaaed..6075111 100644
--- a/contrib/completion/git-completion.zsh
+++ b/contrib/completion/git-completion.zsh
@@ -9,7 +9,7 @@
 #
 # If your script is somewhere else, you can configure it on your ~/.zshrc:
 #
-#  zstyle ':completion:*:*:git:*' script ~/.git-completion.zsh
+#  zstyle ':completion:*:*:git:*' script ~/.git-completion.sh
 #
 # The recommended way to install this script is to copy to '~/.zsh/_git', and
 # then add the following to your ~/.zshrc file:
-- 
2.8.0+fc1

--
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 10/11] completion: prompt: fix for Zsh

2016-05-19 Thread Felipe Contreras
We can add colour in Zsh without the need of pcmode.

Signed-off-by: Felipe Contreras <felipe.contre...@gmail.com>
---
 contrib/completion/git-prompt.sh | 8 +---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh
index 64219e6..0da14ee 100644
--- a/contrib/completion/git-prompt.sh
+++ b/contrib/completion/git-prompt.sh
@@ -502,9 +502,11 @@ __git_ps1 ()
 
local z="${GIT_PS1_STATESEPARATOR-" "}"
 
-   # NO color option unless in PROMPT_COMMAND mode
-   if [ $pcmode = yes ] && [ -n "${GIT_PS1_SHOWCOLORHINTS-}" ]; then
-   __git_ps1_colorize_gitstring
+   # NO color option unless in PROMPT_COMMAND mode or it's Zsh
+   if [ -n "${GIT_PS1_SHOWCOLORHINTS-}" ]; then
+   if [ $pcmode = yes ] || [ -n "${ZSH_VERSION-}" ]; then
+   __git_ps1_colorize_gitstring
+   fi
fi
 
b=${b##refs/heads/}
-- 
2.8.0+fc1

--
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 08/11] completion: zsh: improve main function selection

2016-05-19 Thread Felipe Contreras
Sometimes we want to use the function directly (e.g. _git_checkout), for
example when zsh has the option 'complete_aliases', this way, we can do
something like:

  compdef _git gco=git_checkout

Signed-off-by: Felipe Contreras <felipe.contre...@gmail.com>
---
 contrib/completion/git-completion.zsh | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/contrib/completion/git-completion.zsh 
b/contrib/completion/git-completion.zsh
index 317b8eb..1f786cc 100644
--- a/contrib/completion/git-completion.zsh
+++ b/contrib/completion/git-completion.zsh
@@ -204,8 +204,10 @@ _git ()
 
if (( $+functions[__${service}_zsh_main] )); then
__${service}_zsh_main
-   else
+   elif (( $+functions[__${service}_main] )); then
emulate ksh -c __${service}_main
+   elif (( $+functions[_${service}] )); then
+   emulate ksh -c _${service}
fi
 
let _ret && _default && _ret=0
-- 
2.8.0+fc1

--
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 01/11] completion: add missing fetch options

2016-05-19 Thread Felipe Contreras
Signed-off-by: Felipe Contreras <felipe.contre...@gmail.com>
---
 contrib/completion/git-completion.bash | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/contrib/completion/git-completion.bash 
b/contrib/completion/git-completion.bash
index e3918c8..ecdf742 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1225,6 +1225,8 @@ __git_fetch_recurse_submodules="yes on-demand no"
 __git_fetch_options="
--quiet --verbose --append --upload-pack --force --keep --depth=
--tags --no-tags --all --prune --dry-run --recurse-submodules=
+   --no-recurse-submodules --unshallow --update-shallow --multiple
+   --submodule-prefix= --update-head-ok --progress
 "
 
 _git_fetch ()
-- 
2.8.0+fc1

--
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 00/11] Completion fixes and improvements

2016-05-19 Thread Felipe Contreras
Hi,

Here's a bunch of patches I've been using for a long time. I don't recall if
I've sent some of these before.

Here they are in case anybody is interested.

Cheers.


Felipe Contreras (11):
  completion: add missing fetch options
  completion: bash: remove old wrappers
  completion: bash: remove zsh wrapper
  completion: zsh: don't hide ourselves
  completion: remove zsh hack
  completion: zsh: trivial cleanups
  completion: bash: cleanup cygwin check
  completion: zsh: improve main function selection
  completion: zsh: fix for directories with spaces
  completion: prompt: fix for Zsh
  Revert "Update documentation occurrences of filename .sh"

 contrib/completion/git-completion.bash | 86 +++---
 contrib/completion/git-completion.zsh  | 26 --
 contrib/completion/git-prompt.sh   |  8 ++--
 3 files changed, 20 insertions(+), 100 deletions(-)

-- 
2.8.0+fc1

--
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] fast-import: do not truncate exported marks file

2016-05-17 Thread Felipe Contreras
On Tue, May 17, 2016 at 10:59 PM, Junio C Hamano <gits...@pobox.com> wrote:
> On Tue, May 17, 2016 at 8:31 PM, Felipe Contreras
> <felipe.contre...@gmail.com> wrote:
>> On Tue, May 17, 2016 at 5:22 PM, Junio C Hamano <gits...@pobox.com> wrote:

>>>  - Even if we did not read from any existing marks file, if we are
>>>given export_marks_file that names an existing file, wouldn't we
>>>want to avoid corrupting it with a dump from this aborted run?
>>
>> If we don't run from an existing marks file, this patch has no effect.
>
> Yes, that is exactly what I was wondering if we may want to improve
> while at it.

This doesn't make much sense. Corrupted from where? This patch is
tackling the issue where the imported marks file is "corrupted".

-- 
Felipe Contreras
--
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] fast-import: do not truncate exported marks file

2016-05-17 Thread Felipe Contreras
On Tue, May 17, 2016 at 5:22 PM, Junio C Hamano <gits...@pobox.com> wrote:
> Felipe Contreras <felipe.contre...@gmail.com> writes:
>
>> Certain lines of the marks file might be corrupted (or the objects
>> missing due to a garbage collection), but that's no reason to truncate
>> the file and essentially destroy the rest of it.
>
> Hmm, so the issue is:
>
>  - we use die_nicely() that calls dump_marks() after writing a crash
>report as our die_routine().
>
>  - when dump_marks() is called, and export_marks_file names an
>existing file, it tries to write marks in it.  If we let it go
>through, we would end up writing a new marks file based on an
>incomplete set of marks we have only half-read in the earlier
>step, which is bad, as the resulting one is incomplete, and the
>original one that this replaced may have been a good one.
>
> Is that what this change addresses?

Yes. As I said; the marks file gets truncated.

> I am just wondering if a solution to preserve both files is more
> desirable.
>
> This change looks a bit over-eager to discard the dump die_nicely()
> is trying to create in one scenario, and a bit less careful at the
> same time in another scenario.
>
>  - Even if we are reading from somewhere, export_marks_file can
>point at a completely new file that is different from
>import_marks file, in which case, we are not really losing any
>information by freshly creating a new marks file, no?

Right, we are not losing any information, but we are not gaining much
either: it's a truncated version of the import marks.

>  - Even if we did not read from any existing marks file, if we are
>given export_marks_file that names an existing file, wouldn't we
>want to avoid corrupting it with a dump from this aborted run?

If we don't run from an existing marks file, this patch has no effect.

-- 
Felipe Contreras
--
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] fast-import: do not truncate exported marks file

2016-05-17 Thread Felipe Contreras
Certain lines of the marks file might be corrupted (or the objects
missing due to a garbage collection), but that's no reason to truncate
the file and essentially destroy the rest of it.

Ideally missing objects should not cause a crash, we could just skip
them, but that's another patch.

Signed-off-by: Felipe Contreras <felipe.contre...@gmail.com>
---
 fast-import.c  |  7 +--
 t/t9300-fast-import.sh | 15 +++
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/fast-import.c b/fast-import.c
index 9fc7093..a975c34 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -329,6 +329,7 @@ static const char *export_marks_file;
 static const char *import_marks_file;
 static int import_marks_file_from_stream;
 static int import_marks_file_ignore_missing;
+static int import_marks_file_done;
 static int relative_marks_paths;
 
 /* Our last blob */
@@ -1802,7 +1803,7 @@ static void dump_marks(void)
static struct lock_file mark_lock;
FILE *f;
 
-   if (!export_marks_file)
+   if (!export_marks_file || (import_marks_file && 
!import_marks_file_done))
return;
 
if (hold_lock_file_for_update(_lock, export_marks_file, 0) < 0) {
@@ -1835,7 +1836,7 @@ static void read_marks(void)
if (f)
;
else if (import_marks_file_ignore_missing && errno == ENOENT)
-   return; /* Marks file does not exist */
+   goto done; /* Marks file does not exist */
else
die_errno("cannot read '%s'", import_marks_file);
while (fgets(line, sizeof(line), f)) {
@@ -1865,6 +1866,8 @@ static void read_marks(void)
insert_mark(mark, e);
}
fclose(f);
+done:
+   import_marks_file_done = 1;
 }
 
 
diff --git a/t/t9300-fast-import.sh b/t/t9300-fast-import.sh
index 25bb60b..4bca35c 100755
--- a/t/t9300-fast-import.sh
+++ b/t/t9300-fast-import.sh
@@ -2650,6 +2650,21 @@ test_expect_success 'R: ignore non-git options' '
git fast-import expect <<-EOF &&
+   :3 
+   :1 $blob
+   :2 $blob
+   EOF
+   cp expect io.marks &&
+   test_must_fail git fast-import --import-marks=io.marks 
--export-marks=io.marks <<-\EOF &&
+
+   EOF
+   test_cmp expect io.marks
+'
+
 ##
 ## R: very large blobs
 ##
-- 
2.8.2.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: Reset by checkout?

2014-06-03 Thread Felipe Contreras
Kevin Bracey wrote:
 Maybe we just need to tighten up the EXAMPLES section? Give it
 easy-to-locate path/--soft/--mixed/--keep subheadings, covering all
 those common use cases (in clean trees...), including a before/after
 git status views. Then normal users could skip the top technical
 section waffling about indexes and go straight there instead.

Or maybe we need to have sane options, like --stage, --work, and --keep.

-- 
Felipe Contreras
--
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: [ANNOUNCE] Git v2.0.0

2014-06-02 Thread Felipe Contreras
Jeff King wrote:
 On Sat, May 31, 2014 at 11:52:24AM +0200, David Kastrup wrote:

  And frankly, if I were a list moderator and software asked me through
  this sort of coincidence whether a mail should be delivered or not and a
  glance at it shows nothing but insults, wild accusations, threats and so
  on for the umpteenth time, I'd consider twice clicking Accept.
  Whether or not I ultimately did so, this would likely contribute to the
  delay.
 
 I do not disagree, but please let's not rehash all of that again.

FTR. I haven't insulted anybody, I on the other hand have been insulted
plenty of times, included by Junio.

-- 
Felipe Contreras
--
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: Reset by checkout?

2014-05-31 Thread Felipe Contreras
Atsushi Nakagawa wrote:
 Ok, the typical use case is: I'm on 'master' and I make a few test
 commits.  Afterwards, I want to discard the commits and move back to
 'origin/master'.  I could type 'reset --hard origin/master' and risk
 blowing away dirty files if I'm not careful.  Or, I could use reset by
 checkout and be carefree.

Doesn't 'git reset orign/master' do that?

-- 
Felipe Contreras
--
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: Reset by checkout?

2014-05-31 Thread Felipe Contreras
Felipe Contreras wrote:
 Atsushi Nakagawa wrote:
  Ok, the typical use case is: I'm on 'master' and I make a few test
  commits.  Afterwards, I want to discard the commits and move back to
  'origin/master'.  I could type 'reset --hard origin/master' and risk
  blowing away dirty files if I'm not careful.  Or, I could use reset by
  checkout and be carefree.
 
 Doesn't 'git reset orign/master' do that?

Unless you want to keep the staged files, in which case adding the
--stage and --work options I originally suggested[1] would help.

So you could do `git reset --no-stage --no-work origin/master`

Which is essentially the same as `git update-ref refs/heads/master
origin/master`.

[1] http://article.gmane.org/gmane.comp.version-control.git/247086

-- 
Felipe Contreras
--
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: [ANNOUNCE] Git v2.0.0

2014-05-30 Thread Felipe Contreras
Jeff King wrote:
 On Wed, May 28, 2014 at 06:17:25PM -0500, Felipe Contreras wrote:
 
  This is the last mail I sent to you, because you ignore them anyway, and
  remove them from the mailing list.
  [...]
  [2], a mail you conveniently removed from the tracked record.
  [...]
  You also conveniently removed this mail from the archives.
 
 I see you already noticed the changes in v2.0, but I wanted to address
 these points, because I consider silent censorship to be a serious
 accusation.

Yes, I also think silent censorship is a very seriours matter, and I was
very dissapointed that this mailing list would engage in that.

 I've reported the bug to gmane.discuss (no link yet, as I'm waiting
 for the message to go through, but it is not a high traffic group, so
 it should be easy to find the thread once it is there).

Thanks. At first I thought that was the reason, but then I noticed it
was always my mails that seemed to get this bug, so I decided it was
too much of a coincidence.

Hopefully it's indeed a bug.

-- 
Felipe Contreras
--
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: Summary of the problems with git pull

2014-05-28 Thread Felipe Contreras
Philippe Vaucher wrote:
 Sorry if I missed a thread where it was already decided not to include
 it.
 
 Felipe, please don't use this to start any non-constructive behavior
 (rant on who is right/wrong, my patches are not accepted, etc).

I never sent those patches. I gave up on the Git project.

-- 
Felipe Contreras
--
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: [ANNOUNCE] Git v2.0.0

2014-05-28 Thread Felipe Contreras
This is the last mail I sent to you, because you ignore them anyway, and
remove them from the mailing list.

I'm am cc'ing the git-fc mailing list so there's a public track record
of this, so you can't claim it didn't happen.

Junio C Hamano wrote:
  * The remote-hg/bzr remote-helper interfaces (used to be in
contrib/) are no more.  They are now maintained separately as
third-party plug-ins in their own repositories.

This is a lie. You are saying they don't exist any more, but they do
exist, they graduated according to your same words.

Also, in mail [1] Jeff said:

  But that being said, this is Felipe's code. While we have a legal
  right to distribute it in v2.0, if he would really prefer it out for
  v2.0, I would respect that.

To which you agreed, however, after you fucked up v2.0 and removed an
important patch, I said I changed my wish that I didn't want to disturb
v2.0 in mail [2], a mail you conveniently removed from the tracked
record.

In mail [3] you acknowledged my wish, and you said you were going to put
stubs for v2.0, and you didn't. You also conveniently removed this mail
from the archives.

Your rhetoric to make it appear as if the code is gone, your repeated
failures to accomplish my wish, even you said you would, and your
deliberate removal of the relevant discussion gives me no choice.

I threat all this as deliberate acts of aggression, and I will respond
as I said I would, and bring as much public attention to what you are
doing as possible.

[1] 20140516084126.gb21...@sigill.intra.peff.net
[2] 537bbd6c1daf_a6f166b308b0@nysa.notmuch
[3] xmqqlhtwrufq@gitster.dls.corp.google.com

For reference, here's the full content of mail [2]:

From: Felipe Contreras felipe.contre...@gmail.com
Subject: Re: [PATCH] remote-helpers: point at their upstream repositories
To: Junio C Hamano gits...@pobox.com,  Felipe Contreras 
felipe.contre...@gmail.com
Cc: Jeff King p...@peff.net,  git@vger.kernel.org
Date: Tue, 20 May 2014 15:39:08 -0500
--- text/plain ---
Junio C Hamano wrote:
 Felipe Contreras felipe.contre...@gmail.com writes:
 
  Junio C Hamano wrote:
 
2. add warning that is given every time the scripts are run and
   give the same instruction as in README.
  
3. (optional) cripple the script to make them always fail after
   showing the same warning as above.
 
  This is what I want, and I already sent the patches for; the scripts
  will be stubs. At this point you would have effectively removed the
  code, which what I want.
   
4. Keep README and retire everything else.
 
  After you've removed the code, I don't care what you do, but I'd say you
  should remove the stubs after a long period of time.
 
 Let's try this in a different way, as I sense there is a
 misunderstanding somewhere about your wish.
 
  that does not refer to remove them at v2.0 (unconditional).  It
  refers to If Felipe really wants for the removal for v2.0, I would
  respect that.  And I saw you said you did not want to disrupt v2.0.
  
  If the options I listed all meant removal at v2.0, then I would
  understand your complaints, but that is not the case, so I am not
  sure what to make of that.
 
  It is a weird choice of semantics then. You said you would respect my
  wish, but your proposals did not follow my wish.
 
 I understand you do not want to disrupt v2.0.  My assumption of that
 not disrupting v2.0 has been there still are git-remote-{hg,bzr}
 that work just like what they had in v1.9.x, perhaps with some
 enhancements and regressions you added in the meantime, and I
 understood Peff's comment If Felipe wants the removal to mean that
 kind of disruption, i.e. there is no git-remote-{hg,bzr} that
 work., which would be either step 3 or 4.
 
 But your After you've removed the code comment above makes me
 wonder that perhaps your definition of not disrupting was
 different from ours (which is not good or bad, just different) and
 you consider that step 3. is removal but not distupting v2.0?
 
 If that is what you want in v2.0, then please say so, and I already
 said I am fine with that.

No, I already said I do not want the code removed from v2.0, that's why
I sent patches that simply added a warning, and I specifically said
those were for 2.0.

However, after seeing this commit:

10e1fee (Revert Merge branch 'fc/transport-helper-sync-error-fix')

Which is:

 1) Inaccurate
 2) A lie (*you* broke 2.0, not me)
 3) A disservice to users

I therefore change my wish for you to remove all the remote helpers code
and a replace them with stubs (the patches I originally sent for
post-2.0).

It was a mistake from me to believe you would do the sensible thing for
2.0.

So to make it clear, I now request that you do:

 1) Remove all the code.

Since my patches were removed from the list, here's an updated patch
that applies on top of 'master'

https://github.com/felipec/git/commits/up/remote/remove

 2) Reapply d508e4a (Merge branch 'fc/transport-helper-sync-error-fix

RE: [ANNOUNCE] Git v2.0.0

2014-05-28 Thread Felipe Contreras
Felipe Contreras wrote:
 In mail [3] you acknowledged my wish, and you said you were going to put
 stubs for v2.0, and you didn't. You also conveniently removed this mail
 from the archives.

My bad. You actually did it. I missed it because the commit is named
'Revert Merge branch 'jc/graduate-remote-hg-bzr' (early part)', which
is not at all what it is doing.

So it's just the release notes that are misleading.

-- 
Felipe Contreras
--
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: What's cooking in git.git (May 2014, #05; Fri, 23)

2014-05-23 Thread Felipe Contreras
Junio C Hamano wrote:
 * fc/publish-vs-upstream (2014-04-21) 8 commits
  . sha1_name: add support for @{publish} marks
  . sha1_name: simplify track finding
  . sha1_name: cleanup interpret_branch_name()
  . branch: display publish branch
  . push: add --set-publish option
  . branch: add --set-publish-to option
  . Add concept of 'publish' branch
  . t5516 (fetch-push): fix test restoration
 
  Add branch@{publish}; it seems that this is somewhat different from
  Ram and Peff started working on.  At least the tip needs to be
  rerolled not to squat on @{p} which @{push} and possibly @{pull}
  may want to share.
 
  Ejected from 'pu' to unclutter.

Sure, to unclutter.

Either way I'm not going to pursue this anymore. I've made changes since
I sent those patches, for those who want this feature, you can find the
latest patches here:

https://github.com/felipec/git/commits/fc/publish

Or just use git-fc.

 * fc/remote-hg-fixes-for-hg-3.0 (2014-05-08) 5 commits
  . [DONTMERGE-not signed-off] remote-hg: work with older versions of mercurial
  . remote-hg: add support for hg v3.0
  . t: remote-hg: trivial cleanups and fixes
  . t: remote-hg: add file operation tests
  . remote-hg: add more tests
 
  No longer relevant, as 'master' unbundles contrib/remote-helpers/.

And for the record, the branch was never properly named, as those
patches are *not* for hg 3.0.

 * fc/remote-helpers-hg-bzr-graduation (2014-04-29) 11 commits
  . remote-hg: trivial cleanups
  . remote-hg: make sure we omit multiple heads
  . git-remote-hg: use internal clone's hgrc
  . t: remote-hg: split into setup test
  . remote-hg: properly detect missing contexts
  . remote-{hg,bzr}: store marks only on success
  . remote-hg: update to 'public' phase when pushing
  . remote-hg: fix parsing of custom committer
   (merged to 'next' on 2014-04-22 at fed170a)
  + remote-helpers: move tests out of contrib
  + remote-helpers: move out of contrib
  + remote-helpers: squelch python import exceptions
 
  No longer relevant, as 'master' unbundles contrib/remote-helpers/.

Again a badly named branch; those changes are independent of the
graduation.

-- 
Felipe Contreras
--
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: [ANNOUNCE] git reintegrate v0.3; manager of integration branches

2014-05-23 Thread Felipe Contreras
Junio C Hamano wrote:
 I presume that the workflow can be mimicked by having another branch
 'match-next' and building it on top of 'master', and then building
 'jch' on top of it, and then building 'pu' on top of it.  Then you
 should be able to play 'match-next' instruction on top of 'next'
 (provided that there is a way to tell it to replay on HEAD and
 ignore base and have merge instruction become a no-op when the
 branch has already been merged).

Done.

% git checkout next
% git reintegrate --apply match-next

https://github.com/felipec/git-reintegrate/commit/036395b

-- 
Felipe Contreras
--
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: [ANNOUNCE] git reintegrate v0.3; manager of integration branches

2014-05-23 Thread Felipe Contreras
Felipe Contreras wrote:
 Yes, I see how xx/topic~4 would be useful in the instruction sheet, I
 just didn't see it would be useful to generate that from an existing
 integration branch. After the explanation above I see how it could be
 useful to some people (though not all). I'll implement that.

Actually it was already supported.

https://github.com/felipec/git-reintegrate/commit/f3aa558

-- 
Felipe Contreras
--
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: [ANNOUNCE] Git v2.0.0-rc4

2014-05-21 Thread Felipe Contreras
Junio C Hamano wrote:
 Felipe Contreras felipe.contre...@gmail.com writes:
 
  Junio C Hamano wrote:
 
   * The remote-helper interface to fast-import/fast-export via the
 transport-helper has been tightened to avoid leaving the import
 marks file from a failed/crashed run, as such a file that is out-of-
 sync with reality confuses a later invocation of itself.
 
  Really? Where are the patches for that?
 
  I think it's fair to say the way the remote-helpers and transport-helper
  has been handled for v2.0 has been a total disaster.
 
 Thanks for noticing.  The last-minute change of plans in the morning
 on the -rc release day did not help.  Will remove.

But this changed before that.

 Anything else I missed?

Not as far as I can see.

-- 
Felipe Contreras
--
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] remote-helpers: point at their upstream repositories

2014-05-20 Thread Felipe Contreras
Junio C Hamano wrote:
 Felipe Contreras felipe.contre...@gmail.com writes:
 
  Junio C Hamano wrote:
 
2. add warning that is given every time the scripts are run and
   give the same instruction as in README.
  
3. (optional) cripple the script to make them always fail after
   showing the same warning as above.
 
  This is what I want, and I already sent the patches for; the scripts
  will be stubs. At this point you would have effectively removed the
  code, which what I want.
   
4. Keep README and retire everything else.
 
  After you've removed the code, I don't care what you do, but I'd say you
  should remove the stubs after a long period of time.
 
 Let's try this in a different way, as I sense there is a
 misunderstanding somewhere about your wish.
 
  that does not refer to remove them at v2.0 (unconditional).  It
  refers to If Felipe really wants for the removal for v2.0, I would
  respect that.  And I saw you said you did not want to disrupt v2.0.
  
  If the options I listed all meant removal at v2.0, then I would
  understand your complaints, but that is not the case, so I am not
  sure what to make of that.
 
  It is a weird choice of semantics then. You said you would respect my
  wish, but your proposals did not follow my wish.
 
 I understand you do not want to disrupt v2.0.  My assumption of that
 not disrupting v2.0 has been there still are git-remote-{hg,bzr}
 that work just like what they had in v1.9.x, perhaps with some
 enhancements and regressions you added in the meantime, and I
 understood Peff's comment If Felipe wants the removal to mean that
 kind of disruption, i.e. there is no git-remote-{hg,bzr} that
 work., which would be either step 3 or 4.
 
 But your After you've removed the code comment above makes me
 wonder that perhaps your definition of not disrupting was
 different from ours (which is not good or bad, just different) and
 you consider that step 3. is removal but not distupting v2.0?
 
 If that is what you want in v2.0, then please say so, and I already
 said I am fine with that.

No, I already said I do not want the code removed from v2.0, that's why
I sent patches that simply added a warning, and I specifically said
those were for 2.0.

However, after seeing this commit:

10e1fee (Revert Merge branch 'fc/transport-helper-sync-error-fix')

Which is:

 1) Inaccurate
 2) A lie (*you* broke 2.0, not me)
 3) A disservice to users

I therefore change my wish for you to remove all the remote helpers code
and a replace them with stubs (the patches I originally sent for
post-2.0).

It was a mistake from me to believe you would do the sensible thing for
2.0.

So to make it clear, I now request that you do:

 1) Remove all the code.

Since my patches were removed from the list, here's an updated patch
that applies on top of 'master'

https://github.com/felipec/git/commits/up/remote/remove

 2) Reapply d508e4a (Merge branch 'fc/transport-helper-sync-error-fix')

Since the code in question is no longer part of v2.0, a possible
regression that you aren't even sure of cannot be the rationale to
revert this code.

Your commit 10e1fee (Revert Merge branch
'fc/transport-helper-sync-error-fix') actively hurts the
out-of-tree tools, so I'll consider a failure to re-revert a hostile
action.

 3) Update the release notes to mention these tools have been removed

  Additionally, you might want to:

 4) Re-add the following release note:

* git push via transport-helper interface (e.g. remote-hg) has
  been updated to allow forced ref updates in a way similar to the
  natively supported transports

I don't know why you removed it in the first place. Clearly you pay
no attention at all to these interfaces.

I expect you to do at the very least 1) and 2).

-- 
Felipe Contreras
--
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] remote-helpers: point at their upstream repositories

2014-05-20 Thread Felipe Contreras
Junio C Hamano wrote:
 Felipe Contreras felipe.contre...@gmail.com writes:
 
  Junio C Hamano wrote:
  
  After looking at the reverse-depends list of packages, my faith is
  strengthened in that the Git ecosystem is truly maturing and useful
  third-party plug-ins will be picked up by distro packagers.
 
  Where is git-imerge packaged?
 
 I didn't see it on the archive the said Ubuntu box slurps from, but
 I did not check all the other distros.

I will help you: it's not packaged anywhere.

  Do you want to bet? Nah, you don't *ever* want to accept you were wrong,
  even you clearly where.
  ...
  This is what's going to happen: there won't be an official git-hg
  package for *years*, if there is ever one. That is my prediction based
  on all the available evidence, I am willing to stand by it and accept I
  was wrong if it proves otherwise.
 
  Are you willing to stand by your own decisions?
 
 If I understand correctly, you have made and you do maintain some
 packages and as an insider, you do not have to wait for an
 outsider to step up to make remote-{hg,bzr} packages yourself.

No, you do not understand how packaging works. ArchLinux's AUR[1] is a
community-driven repository, anybody can package anything and put it
there. That doesn't mean people can simply do `pacman -S git-remote-hg`,
far from it.

It's a placeholder for *outsiders*, not official package maintainers.

I am an outsider in ArchLinux.

 You may already have done so for your own use and told other people
 about them, and others may have chosen to wait for you to push them to
 distros instead of championing these tools by packaging them
 themselves.

You clearly haven't tried to package anything for any distro. You can't
just champion packages for a distribution. You have to go through an
arduous process before becoming an official packager.

 When you have such an influence on the outcome either way of your
 choice, I do not see much value in such a bet.

If I champion these packages I would be making you win the bet. Why
would I do that?

 But I actually think that we package what we want to use is a good
 thing for programs whose primary audience is the software developer
 types.  The packagers are part of their audiences [*1*].  Because of
 that, even if remote-{hg,bzr} do not get packaged for a long time, I
 doubt that it tells us what you are stipulating.  The only thing we
 can infer would be that these programs did not interest the software
 developer types to motivate them enough, and we wouldn't know why
 they found the programs uninteresting.  It may be because those who
 have history in Hg prefer to interact with remote Git repositories
 by pushing into and fetching from them using Hg tools than using Git
 tools.  It would not indicate useful tools fall through the cracks
 if it were the case, would it?

Or it might mean that the people that would otherwise do that packaging
instead simply copy the single file needed manually.

 Indeed I saw bzr-git that came from the Bazaar land packaged on the
 box I mentioned, and its description sounded like it is meant to
 work in such a way that allows Bazaar commits to be pushed to Git
 repositories using a bzr tool.
 
 By the way, I also saw git-mediawiki packaged from contrib/ in our
 tree.  I found it not very credible to say contrib/ is treated as a
 single ball of wax without much value by packagers, and we need to
 move the helpers up to core in order for them to be used more
 widely after seeing that.

You are misconstruing what I said. I said *most* distributions treat
contrib as a ball of wax. And I said there were a few *exceptions* on
this ball of wax, like completions. remote-helpers are not part of these
exceptions (with the exception of git-bzr).

 *1* I saw you called them wolves at least twice recently---where
 does such a distrust come from?

It's a jungle out there, and it's every out-of-tree tool by itself. Most
of the tools on the contrib/ area would not survive if you throw them to
those wolves, and you know it.

[1] https://wiki.archlinux.org/index.php/Arch_User_Repository

-- 
Felipe Contreras
--
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: [ANNOUNCE] git reintegrate v0.3; manager of integration branches

2014-05-20 Thread Felipe Contreras
Junio C Hamano wrote:
 Felipe Contreras felipe.contre...@gmail.com writes:
 
  ...
  Which will generate the integration instructions for you:
 
% git reintegrate --cat
base master
merge jl/submodule-mv
 
  Moving a regular file in a repository with a .gitmodules file was
  producing a warning 'Could not find section in .gitmodules where
  path=filename'.
 
merge ap/remote-hg-unquote-cquote
 
  It also has support for evil merges, so it should be perfectly
  usable for git.git maintenance.
 
 Yeah, it sounds like it is almost there.
 
 I think the infrastructure to maintain What's cooking could be
 updated to use these comments after merge instructions if I wanted
 to.
 
 I build two branches on top of 'master', one is called 'jch' and has
 a marker line somewhere that says '### match next' that is turned
 into an empty commit, and 'pu' that is built on top of the tip of
 'jch'.  The marker line is used to apply only an earlier part of the
 instruction stream to build 'jch' on top of 'master' on top of
 'next' (i.e. base master in the above example will not be applied
 to hard-reset 'next' to match master) and stop there, and is meant
 to be a way to sanity check 'next' (which is made by repeated
 incremental merges on top of 'master' without rewinding) by
 comparing the ### match next commit between 'master' and 'jch'
 (which is made afresh from 'master' by taking only the necessary
 topics).  They must match or I caught a possible mismerge on 'next'.
 
 I presume that the workflow can be mimicked by having another branch
 'match-next' and building it on top of 'master', and then building
 'jch' on top of it, and then building 'pu' on top of it.  Then you
 should be able to play 'match-next' instruction on top of 'next'
 (provided that there is a way to tell it to replay on HEAD and
 ignore base and have merge instruction become a no-op when the
 branch has already been merged)

Or have an option to specify a dynamic instruction sheet, so you can cat
the instructions of 'match-next' and replace the base. However, I don't
see the point of re-applying the branches for 'next' if you already know
that 'next' and 'match-next' are the same.

I would have two branches: 1) 'match-next' (or 'integration-next') that
has the instructions to build 'next' on top of 'master', and 2) 'pu',
which has the instructions to build 'pu' on top of 'next'.

-- 
Felipe Contreras
--
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] remote-helpers: point at their upstream repositories

2014-05-20 Thread Felipe Contreras
Junio C Hamano wrote:
 Felipe Contreras felipe.contre...@gmail.com writes:
 
  Let's try this in a different way, as I sense there is a
  misunderstanding somewhere about your wish.
  ...
  No, I already said I do not want the code removed from v2.0, that's why
  I sent patches that simply added a warning, and I specifically said
  those were for 2.0.
 
 Yeah, I think there are mails crossing.  I sent that different way
 way before I read your already said happened.
 
  So to make it clear, I now request that you do:
 
   1) Remove all the code.
 
  Since my patches were removed from the list, here's an updated patch
  that applies on top of 'master'
 
  https://github.com/felipec/git/commits/up/remote/remove
 
 I'll do that, but just one thing to make sure---do you want the
 helper to exit with status 0?

It doesn't matter; if the remote helper doesn't respond to the commands
transport-helper exits with 128.

   4) Re-add the following release note:
 
  * git push via transport-helper interface (e.g. remote-hg) has
been updated to allow forced ref updates in a way similar to the
natively supported transports
 
 I am not sure if this one is consistent with 1), as remote-hg will
 no longer be with the release.

Remove '(e.g. remote-hg)', the rest still applies.

-- 
Felipe Contreras
--
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] remote-helpers: point at their upstream repositories

2014-05-20 Thread Felipe Contreras
Johan Herland wrote:
 On Tue, May 20, 2014 at 4:55 PM, Michael Haggerty mhag...@alum.mit.edu 
 wrote:
  On 05/19/2014 11:31 PM, Junio C Hamano wrote:
  Felipe Contreras felipe.contre...@gmail.com writes:
  Where is git-imerge packaged?
 
  I didn't see it on the archive the said Ubuntu box slurps from, but
  I did not check all the other distros.
 
  Michael, do you know what distro folks are doing with imerge?  For
  the purpose of this thread, I do not follow distros, and I do not
  know is a perfectly acceptable answer, but it would be very
  relevant if your answer is I suggested these distros to include it,
  but so far they have been uncooperative and I haven't had much
  success.
 
  I haven't heard of any Linux distros that have git-imerge packages.  I
  just searched the package archives for Debian, Fedora, Gentoo, and Arch
  without finding it.
 
 FWIW; someone has made an AUR package (a user-contributed Arch package
 recipe) for git-imerge:
 https://aur.archlinux.org/packages/git-imerge-git/

That doesn't say much. Anybody can put packages there, and it has a
single vote, which suggests not many people use it (if any).

-- 
Felipe Contreras
--
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: [ANNOUNCE] git reintegrate v0.3; manager of integration branches

2014-05-20 Thread Felipe Contreras
Junio C Hamano wrote:
 Felipe Contreras felipe.contre...@gmail.com writes:
 
  Or have an option to specify a dynamic instruction sheet, so you can cat
  the instructions of 'match-next' and replace the base. However, I don't
  see the point of re-applying the branches for 'next' if you already know
  that 'next' and 'match-next' are the same.
 
 The output from Reintegrate script (in 'todo') only lists the names
 of topic branches (or something like xx/topic~4 when the topic is
 not fully merged yet), and a topic branch may acquire a follow-up
 change (or two) on top (there is a machinery to see if xx/topic~4
 is still valid in such a case and update the offset as needed).
 
 Rebuilding 'jch' on top of 'master' with the same insn sheet will
 then merge the updated topic branch in its entirety, and the new
 commits on the topic branch somehow needs to go to 'next' for the
 match next on 'jch' and 'next' to be in sync (in addition, updated
 'master' must be merged to 'next', but that goes without saying).
 
 In other words, I already know that 'next' and match next are not
 the same, that they must become the same, and there needs a way to
 make them so.
 
 And that is done by re-running the insn sheet for 'jch' up to the
 match next mark, merging the topic that are not fully merged to
 'next' while ignoring the ones that already are fully in 'next'.

There could be a new --merge-missing option that takes the instruction
sheet of an integration branch (e.g. 'match-next'), ignores the 'base'
applies them in 'HEAD' but only when the topic branch isn't already in
'HEAD'.

I'm not sure what would be the usefulness of using things like
'xx/topic~4'.

-- 
Felipe Contreras
--
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: [ANNOUNCE] git reintegrate v0.3; manager of integration branches

2014-05-20 Thread Felipe Contreras
On Tue, May 20, 2014 at 5:47 PM, Junio C Hamano gits...@pobox.com wrote:
 Felipe Contreras felipe.contre...@gmail.com writes:

 I'm not sure what would be the usefulness of using things like
 'xx/topic~4'.

 As a notation it is not very pretty ;-).

 Imagine that xx/topic is about a multistep introduction of a
 backward incompatible feature.  The beginning part of the series up
 to xx/topic~4 are the step to start warning (i.e. will change---do
 this to keep the old one or do that to live in the future),
 xx/topic~3..xx/topic~1 are the next step to flip the default and
 still keep warning (i.e. have changed---do this to keep the old one
 or do that to live in the present), and the final xx/topic is the
 endgame where everybody lives with the new default with no warning,
 without having to know what the old default was.

 While the topic is being prepared for the next release, the insn
 sheet for 'jch' would have xx/topic~4 before match next marker,
 and then an entry for xx/topic~1 somewhere after it, and finally an
 entry for xx/topic (i.e. the tip, final commit).  When the first
 step cooked well enough in 'next', selected entries of 'jch' insn
 sheet before match next ones are used to merge them to 'master'
 and the part up to xx/topic~4 (but not later patches on the topic
 branch) will be part of the upcoming release.

 You could simulate that with multiple branches stacked on top of
 each other, but there are times when keeping things together in a
 single branch is more handy.

 In restrospect, if I found xx/topic~4 too ugly, I might have instead
 made branches stacked on top of each other easier to manage, but
 having Reintegrate support in the middle of a branch was simpler.
 They are both OK solutions to the same problem, and I didn't have to
 solve it both ways ;-)

Yes, I see how xx/topic~4 would be useful in the instruction sheet, I
just didn't see it would be useful to generate that from an existing
integration branch. After the explanation above I see how it could be
useful to some people (though not all). I'll implement that.

-- 
Felipe Contreras
--
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: [ANNOUNCE] Git v2.0.0-rc4

2014-05-20 Thread Felipe Contreras
Junio C Hamano wrote:

  * The remote-helper interface to fast-import/fast-export via the
transport-helper has been tightened to avoid leaving the import
marks file from a failed/crashed run, as such a file that is out-of-
sync with reality confuses a later invocation of itself.

Really? Where are the patches for that?

I think it's fair to say the way the remote-helpers and transport-helper
has been handled for v2.0 has been a total disaster.

-- 
Felipe Contreras
--
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] remote-helpers: point at their upstream repositories

2014-05-19 Thread Felipe Contreras
Junio C Hamano wrote:
 Felipe Contreras felipe.contre...@gmail.com writes:
 
  Junio C Hamano wrote:
 
   - The always warn does not force update at the point of use, but
 it still does not help them to notice well before they try to use
 it for the first time after update;
 
  I don't understand this sentence. They will see a big fat warning every
  time they run the tool, of course they'll notice.
 
 Let me ask one question first, in order to avoid miscommunication,
 as I really want to get the first step for v2.0-rc4 in a concrete
 shape tomorrow.  Do you think gradual transition worth pursuing or
 do you think it is a waste of time?

If by gradual transition you mean place the contrib/remote-helpers in
another directory before removing the code, I do think it's a waste of
time, but I don't really care, as long as eventually stubs are put in
place.

 I do not think it matters that much, but since you said you do not
 understand...
 
 What I meant was that when they update their Git (perhaps at the
 beginning of the week), the won't know they will now be running
 stale code.  The warning comes only when they first run it (perhaps
 at the end of the week) to do some real work with a remote hg
 repository, which may not be a convenient time to do their sysadmin
 task.  And the next time when they update their Git, they may have
 already forgotten about the warning.  The ideal transition would be
 to somehow let them notice when they are in sysadmin mode.

You can add such change in the release notes. Other than that I don't
see what we could do.

   - Break the build attempts to help them notice when they try to
 update, not when they need to use the updated one right at this
 moment.
 
  This cannot be done.
 
 Renaming the directory will not break at the build time for those
 who have already did ln -s these scripts, of course, but it will
 break at the build time for others (i.e. those who cp), no?

How many people copy the scripts every time they update Git? Not many
I'd gather.

  They click that URL, and the are immediately greated with this:
 
To enable this, simply add the git-remote-hg script anywhere in your 
  $PATH:
 
  wget https://raw.github.com/felipec/git-remote-hg/master/git-remote-hg 
  -O ~/bin/git-remote-hg
  chmod +x ~/bin/git-remote-hg
 
 Perfect.  I did check the page when double-checking the URL while
 writing the README thing, and I did skim the page, but I must have
 missed it.
 
 We could add these two to the warning, then, to discourage people
 who see please visit this URL and say Yuck, I have no time for
 that without actually visiting.

We could. Personally I don't see the point of making the warning any
more annoying. The instructiosn are just one click away, and if they
have no time for that, they can just ignore the warning.

  So to summarize, the following timeline is a full possibility:
  ...
2. add warning that is given every time the scripts are run and
   give the same instruction as in README.
  
3. (optional) cripple the script to make them always fail after
   showing the same warning as above.
 
  This is what I want, and I already sent the patches for; the scripts
  will be stubs. At this point you would have effectively removed the
  code, which what I want.
 
 I think explained why the step 3 would not help very much compared
 to the there is no script, only README remains endgame (and that
 is why it is marked as optional).  Actually, you reminded me that
 a very short and easy-to-follow instruction is on the page referred
 to from README and the warnings, which means that this step would
 make even less difference compared to the endgame.
 
 I don't think I saw you explain why that is not the case and why we
 do want this step (and I cannot quite tell if you are aiming for
 more gradual transition that wants this step, or an expedited one
 that does not).  I am fine with either way.

To me the endgame is that the code is removed, and only stubs remain.
What you do after that is up to you.

 In any case, I'd ask another question to avoid wasting time on
 miscommunication.  By This is what I want, do you mean you want
 this step 3 also in v2.0, or do you mean you want 2 alone in v2.0
 then step 3 some time later?

I meant I want 3. eventually, hopefully for v2.1.

 You said your wish wasn't respected in another message, when I
 explained that I thought you did not want to disrupt v2.0 by
 insisting on removing these scripts and that was why I listed
 options that did not involve removal of the scripts.  Are you saying
 that you wish you want to see them removed or crippled at v2.0?
 Changing your mind after discussion is perfectly fine, by the way.

You did not specify those were only for v2.0.

No, I don't want them crippled for v2.0. A warning should suffice.

-- 
Felipe Contreras
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo

Re: [ANNOUNCE] git related v0.3

2014-05-19 Thread Felipe Contreras
Ævar Arnfjörð Bjarmason wrote:
 On Mon, May 19, 2014 at 2:36 AM, Felipe Contreras
 felipe.contre...@gmail.com wrote:
  This tool finds people that might be interested in a patch, by going
  back through the history for each single hunk modified, and finding
  people that reviewed, acknowledged, signed, or authored the code the
  patch is modifying.
 
  It does this by running `git blame` incrementally on each hunk, and
  finding the relevant commit message. After gathering all the relevant
  people, it groups them to show what exactly was their role when the
  participated in the development of the relevant commit, and on how many
  relevant commits they participated. They are only displayed if they pass
  a minimum threshold of participation.
 
  It is similar the the `git contacts` tool in the contrib area, which is a
  rewrite of this tool, except that `git contacts` does the absolute minimum;
  `git related` is way superior in every way.
 
 The general heuristic I use, which I've found to be much better than
 git-blame is:
 
  1. Find substrings of code I'm directly removing/altering, and
 functions I'm removing/altering
  2. Do git log --reverse -p -S'substr' (maybe with -- file) for a
 list of substrings

Yes, that is true, but it cannot be automated. When I'm lazy I just do
`git related -cfull a..b`, which will show me the full patches so I can
decide if they are relevant or not.

One possibility would be to add an additional --keywords option to `git
related`. Another would be to add an --interactive where each supposedly
relevant patch is shown for the user to decide if it truly is.

-- 
Felipe Contreras--
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] remote-helpers: point at their upstream repositories

2014-05-19 Thread Felipe Contreras
Junio C Hamano wrote:
 Junio C Hamano gits...@pobox.com writes:
 
  Felipe Contreras felipe.contre...@gmail.com writes:
 
  We could. Personally I don't see the point of making the warning any
  more annoying
 
 If we were giving the users a choice of no thanks, I'll keep using
 the obsolete one, then trying to be a low key and giving them a way
 to squelch with an advice.* config might make sense, but if we plan
 to remove/stub at as early as v2.1, I think annoyance is very much
 what we want, actually, because it clearly is the case that we do
 prefer users switching instead of waiting for v2.1.
 
 How does this sound?

The patch below assumes the user has ~/bin in his PATH, which might not
be the case. Personally I don't see the point of creating extra
annoyance with instructions that might not work.

-- 
Felipe Contreras
--
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] remote-helpers: point at their upstream repositories

2014-05-18 Thread Felipe Contreras
Matthieu Moy wrote:
 Felipe Contreras felipe.contre...@gmail.com writes:
 
   % git fetch
   WARNING: git-remote-hg is now maintained independently.
   WARNING: For more information visit 
  https://github.com/felipec/git-remote-hg
   searching for changes
   no changes found
 
 I don't think the situation is as simple as you claim. In many cases,
 the first step before the ones you are mentionning are:
 
   cd $git/contrib/remote-helpers
   cp git-remote-{hg,bzr} somewhere/in/path

In many cases, but not all cases. In other cases they are:

ln -s $git/contrib/remote-helpers/git-remote-hg \
somewhere/in/path/git-remote-hg

Which has to be done only once, and not every time Git is updated.

 They produces no warning if git-remote-{hg,bzr} exist with the warning,
 but no such file or directory: contrib/remote-helpers if the directory
 has been renamed or removed.

So? They'll get the warning the next time they try to use it, and their
workflow won't be interrupted, and the warning will be more useful than
No such file or directory.

 When git-remote-{hg,bzr} are installed with a package manager, the fact
 that they are part of Git's core or not is often irrelevant. For
 example, Debian splits the git.git source into many packages, so a
 Debian user will not see any difference between helpers included in
 git.git or outside (e.g. I have to install the package git-svn if I want
 to use git-svn).

Yet there is no git-hg. And I doubt Jonathan Nieder is going to package
the out-of-tree git-bzr, which as far as I know, is the only out-of-tree
package of these remote helpers in any distro.

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


[ANNOUNCE] git reintegrate v0.3; manager of integration branches

2014-05-18 Thread Felipe Contreras
Hi,

git reintegrate is a helper tool to manage integration branches, it
has all the options of other known tools.

This is a rewrite of John Keeping's git-integration in Ruby, it has
essentially the same features and passes all the git-integration
tests, but it has more features.

One feature that is missing from git-integration is the ability to
parse existing integration branches.

To give a try you can do:

  git clone https://github.com/gitster/git/
  cd git
  git fetch -u origin 'refs/tags/*:refs/tags/*' 'refs/heads/*:refs/heads/*'
  git checkout pu
  git reintegrate --generate pu master

Which will generate the integration instructions for you:

  % git reintegrate --cat
  base master
  merge jl/submodule-mv

Moving a regular file in a repository with a .gitmodules file was
producing a warning 'Could not find section in .gitmodules where
path=filename'.

  merge ap/remote-hg-unquote-cquote

A fast-import stream expresses a pathname with funny characters by
quoting them in C style; remote-hg remote helper forgot to unquote
such a path.

  merge jk/for-each-ref-skip-parsing
  merge jk/pack-corruption-post-mortem
  merge jk/reset-p-current-head-fix

git reset -p HEAD has codepath to special case it from resetting
to contents of other commits, but recent change broke it.

  ...

It also has support for evil merges, so it should be perfectly
usable for git.git maintenance.

You can edit the instructions with `git reintegrate --edit`.

The simplest way to begin an integration branch is with:

  git reintegrate --create pu master
  git reintegrate --add=branch1 --add=branch2 --add=branch3

To generate the integration branch run `git reintegrate --rebuild`, if
there are merge conflicts, solve them and continue with `git
reintegrate --continue`.

Despite having more features, the code is actually smaller thanks to
Ruby awesomeness.

Enjoy.

https://github.com/felipec/git-reintegrate

Changes since v0.1:

 * Add support for empty commits
 * Add support for pause command
 * Update manpage
 * Add bash completion

Felipe Contreras (26):
  Add copyright and license notices
  Fix EDITOR support with arguments
  Trivial style cleanup
  Improve command regex
  Add support for empty commits
  test: improve check_int()
  Add support for 'pause' command
  doc: rename manpage file
  doc: update options
  doc: add description
  doc: add missing instruction commands
  doc: cleanup . command
  Verify branches after parsing
  test: fix test names
  Remove unused statements
  Update README
  test: cleanup instruction sheets
  Update copyright notices
  Add bash completion
  build: add installation stuff
  readme: add installation instructions
  Add gitignore for documentation
  trvis: initial configuration
  travis: add verbosity
  test: add test-lib helper
  travis: remove Ruby 1.8

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


[ANNOUNCE] git related v0.3

2014-05-18 Thread Felipe Contreras
Hi,

This tool finds people that might be interested in a patch, by going
back through the history for each single hunk modified, and finding
people that reviewed, acknowledged, signed, or authored the code the
patch is modifying.

It does this by running `git blame` incrementally on each hunk, and
finding the relevant commit message. After gathering all the relevant
people, it groups them to show what exactly was their role when the
participated in the development of the relevant commit, and on how many
relevant commits they participated. They are only displayed if they pass
a minimum threshold of participation.

It is similar the the `git contacts` tool in the contrib area, which is a
rewrite of this tool, except that `git contacts` does the absolute minimum;
`git related` is way superior in every way.

For example:


% git related master..fc/transport/improv
  Junio C Hamano gits...@pobox.com (signer: 90%, author: 5%)
  Felipe Contreras felipe.contre...@gmail.com (author: 25%, reviewer: 2%)
  Sverre Rabbelier srabbel...@gmail.com (author: 17%, acker: 2%, signer: 7%)
  Jeff King p...@peff.net (acker: 17%, author: 10%)
  Shawn O. Pearce spea...@spearce.org (author: 5%, signer: 2%, cced: 2%)
  Elijah Newren new...@gmail.com (author: 10%)


In addition, it has an option to output the list of commits, instead of the
contributors, which allows you to easily find out the previous changes to the
lines your patches modify.


% git related -c master..fc/transport/improv
  99d9ec0 Merge branch 'fc/transport-helper-no-refspec'
  67c9c78 transport-helper: barf when user tries old:new
  0460ed2 documentation: trivial style cleanups
  126aac5 transport-helper: fix remote helper namespace regression
  21610d8 transport-helper: clarify pushing without refspecs
  a93b4a0 transport-helper: warn when refspec is not used
  664059f transport-helper: update remote helper namespace
  c4458ec fast-export: Allow pruned-references in mark file
  ...


Moreover, when sending patches for review, you can configure `git send-email`
to use `git related` to find relevant people that should be Cc'ed:


% git send-email --cc-cmd='git related' *.patch


Compared to `git related`, `git contacts` has the following limitations:

 1) Doesn't show the amount of involvement
 2) Doesn't show the kind of involvement (reviewer, author) nor
does it group people by their email address
 3) Doesn't have the option to show the commit themselves
 4) Doesn't have any options at all (--since, --min-percent)

Cheers.

https://github.com/felipec/git-related

Changes since v0.1:

 * Fix compatibility with older versions
 * Add -clong option
 * Add manpage
 * Improve performance by grouping line ranges

Felipe Contreras (12):
  Fix compatibility with Ruby 1.9
  Add support for Ruby 1.8
  Fix popen workaround
  Refactor blame parsing
  Pass multiple ranges to `git blame`
  test: add gitingnore file
  Add -clong option
  Add manpage
  build: add installation stuff
  readme: trivial updates
  test: add test-lib helper
  travis: initial configuration

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


[ANNOUNCE] git send-series v0.1

2014-05-18 Thread Felipe Contreras
Hi,

This tool allows you to maintain a patch series more easily. You can store the
cover letter, the cc list, version of the series, and other metadata.

By default it will use the currently checked out branch, and show you a
template like this:


version:
cc:

Subject

Content.


The first part is a YAML document with all optional fields, such as 'version',
'cc', 'to'. You can store any information you want using the YAML syntax.

The second part, delimited by a blank line, is the cover letter. The first like
will be used as the subject of the cover letter email, and the rest as the
content of the email.

Then standard tools will be used to send the emails: `git format-patch` and
`git send-email`, which you must have configured before using this helper.

In the end a custom ref will be created to save the current state of the
branch. For example, if you want to see what was the status of your series of
the branch 'feature-a' in version 2, you can use 'sent/feature-a/v2', for
example to create an interdiff to see what changed between one version an the
other.

Enjoy.

https://github.com/felipec/git-send-series

-- 
Felipe Contreras
--
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] remote-helpers: point at their upstream repositories

2014-05-18 Thread Felipe Contreras
Junio C Hamano wrote:
 Felipe Contreras felipe.contre...@gmail.com writes:
 
   But that being said, this is Felipe's code. While we have a legal right
   to distribute it in v2.0, if he would really prefer it out for v2.0, I
   would respect that.
  
  I am fine with that.
 
  Are you? Because in two of the three options you list below you wouldn't
  be doing that.
 
 that does not refer to remove them at v2.0 (unconditional).  It
 refers to If Felipe really wants for the removal for v2.0, I would
 respect that.  And I saw you said you did not want to disrupt v2.0.
 
 If the options I listed all meant removal at v2.0, then I would
 understand your complaints, but that is not the case, so I am not
 sure what to make of that.

It is a weird choice of semantics then. You said you would respect my
wish, but your proposals did not follow my wish.

  The fact of the matter is that users cannot depend on packages any more.
  Maybe they'll be packaged, maybe not. If they are it will take a long
  time before they do. In the meantime they'll have to manually install
  them all all out-of-tree tools.
 
 I have always thought that distro packagers are the biggest ally us
 project leaders have.  They locate useful pieces of software,
 massage them into a shape that fit their distro well and deliver
 what we write to their audience.  Packaging stuff that are useful to
 their end-users is what they do best, and not leaving useful stuff
 unpackaged is in their best interest.

Yet I bet a lot of open-source software is not actually packaged. That's
the reason there's Python's pip, and Ruby gems.

*If* your software is popular enough, then yes, packagers are your
biggest allys, but if not, they aren't.

 Your statement makes it sound like they are incompetent lazy fools
 who do not know what is useful for their users.

This sentence proves you have no idea how packaging is done.

There is no comittee that hunts down packages that are useful for their
users and assigns available packagers to those projects. Exactly the
same way you don't assign Git developers tasks based on what is useful
for our users.

Each packager decides what project they package, just like every Git
developer decides on what feature they work on.

An obscure package might be packaged because a prominent Debian package
maintainer likes it, and a much more useful and popular project might
not be packaged simply because no package maintainer is interested in
it.

Exactly the same happens in Git; people work on relatively obsucre
features such as ref transactions, because they are interested in them,
and features much more useful for our users get ignored, because
there's nobody (of relevance) championing them.

When a popular project that is useful for the users is neglected for
too long, what usually happens is that an outsider steps up and does the
packaging, which then goes through a review process, and that outsider
might become an official maintainer, and maybe start to package other
things too. That's how packagers join the project.

But nothing gets done if no ousider steps up.

Excatly the same happens in Git; when a feature has been neglected for
too long, an outsider comes and tries to implement it, go through a
review process, and eventually start fixing other things too.

So no, there's no comittee that decides what should be packaged, just
like there's no committe that decides what Git features should be
developed.

It's incredibly alarming that you would think packagers in open source
distributions would work any other way.

And it's incredibly funny that you would label people working on such
model as incompetent lazy fools for not knowing what is useful for
their users, when it is *EXACTLY* the same thing you do in Git; you do
not know what is useful for our users; you don't actually care; you just
work on whatever you like to work on.

It's even worst than that, because if somebody steps up to package a
popular project, the package goes in, but when somebody steps up to
implement a feature that improves our user-interface in Git; they get
their knees shot.

 I find it disturbing to see such a distrust.  Or am I being too
 naive to have too much faith in packaging folks?

There is so much wrong with your mode of thinking and the blindness that
you don't see what you yourself do that I don't even know where to
begin.

Yes you are too naive, on many levels.

 I checked the list of packages that depend on git on one of my
 boxes (it is a bit old Ubuntu).  I of course expected that many of
 them are what comes from our tree split into their own niche tool
 packages (e.g. git-svn, git-gui, gitweb...), but I was pleasantly
 surprised to see many that I haven't even aware of being packaged.
 Of course, tig is among the packages that depend on us which I am
 happy to see.
 
 There are things of somewhat questionable value I saw in the list,
 of course.  It is already 2014, and I feel fairly safe to feel that
 I can say without offending too

Re: [PATCH] remote-helpers: point at their upstream repositories

2014-05-18 Thread Felipe Contreras
Junio C Hamano wrote:
 My suggestion to rename the directory without smudging the scripts
 was meant to be a step that can come before that step, and I think
 its necessity is debatable.  It depends on how gradual a transition
 you want to give, and being always the more cautious type,

 I think having such a step will give packagers who pay attention to
 what they package and users who pay attention to what they install
 without packaging an early chance to notice and prepare.

Immaginary packagers.

  - The always warn does not force update at the point of use, but
it still does not help them to notice well before they try to use
it for the first time after update;

I don't understand this sentence. They will see a big fat warning every
time they run the tool, of course they'll notice.

  - Break the build attempts to help them notice when they try to
update, not when they need to use the updated one right at this
moment.

This cannot be done.

 But I am fine with an expedited transition schedule without the
 break the build step.  That was an optional first step, because
 warn but still work state we must have before the endgame will
 give the users the choice of when to adjust anyway.
 
 I also thought about adding an extra step to have even more gradual
 transition, by the way.  A step before the endgame will ship these
 scripts without anything but instruct and fail (this is not warn
 and fail, as it is too late warn, as the scripts are crippled not
 to work at this point).
 
 That will still force the user to update at the point when the user
 needs to use it, but seeing the instruction (e.g. run this curl
 command to fetch from this URL and store it in a file called
 git-remote-xx on your $PATH) that is easy to follow immediately
 would be better than seeing only a failure (i.e. remote-hg not
 found), having to go fish the README, visiting the GitHub pages
 and figuring out how to fetch and install the script, which would
 be what the user will get with README only, no scripts endgame.

I don't see what's so complicated about this:

  WARNING: git-remote-hg is now maintained independently.
  WARNING: For more information visit https://github.com/felipec/git-remote-hg

They click that URL, and the are immediately greated with this:

  To enable this, simply add the git-remote-hg script anywhere in your $PATH:

wget https://raw.github.com/felipec/git-remote-hg/master/git-remote-hg -O 
~/bin/git-remote-hg
chmod +x ~/bin/git-remote-hg

Clearly you haven't even bothered to visit the home pages of the
projects you threw to the wolves.

 So to summarize, the following timeline is a full possibility:
 
   1. (optional) break the build by renaming directory and add
  README. Include not just the repository URL but a blob URL
  and instruction to download via wget/curl.

That won't break the build.

   2. add warning that is given every time the scripts are run and
  give the same instruction as in README.
 
   3. (optional) cripple the script to make them always fail after
  showing the same warning as above.

This is what I want, and I already sent the patches for; the scripts
will be stubs. At this point you would have effectively removed the
code, which what I want.
 
   4. Keep README and retire everything else.

After you've removed the code, I don't care what you do, but I'd say you
should remove the stubs after a long period of time.

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


RE: bug: autostash is lost after aborted rebase

2014-05-18 Thread Felipe Contreras
Karen Etheridge wrote:
 
 scenario: 
 - edit some tracked files; do not add them to the index
 - git config rebase.autostash true
 - git rebase -i HEAD~3 (an autostash will be created)
 - delete the entire buffer and save/exit the editor - this will abort the
   rebase
 
 poof, the autostash is gone (it is not reapplied) -- it must be explicitly
 applied again via the SHA that was printed earlier.

Yeah, I noticed this issue while rewriting `git rebase` in Ruby. I also
noticed many other issues and inconsistencies that happen depending on what
arguments you pass to `git rebase`.

I'm in the process of writing a much more improved and consistent
`git rebase` in Ruby with a different interface. Sadly it's still not ready.

 (please cc me; I am not subscribed to the list.)

No need to say that, only on mailing lists that do Reply-To munging, and
Git is not one of them.

Cheers.

-- 
Felipe Contreras
--
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] remote-helpers: point at their upstream repositories

2014-05-17 Thread Felipe Contreras
Jeff King wrote:
 On Sat, May 17, 2014 at 12:25:30AM -0500, Felipe Contreras wrote:
 
   I agree with the line of reasoning you laid out in your email,
   especially:
  
  What a shock.
 
 Please stop with these unproductive and rude comments.

I am sorry, but the fact of the matter is that you *always* agree with
Junio.

   I hadn't thought of the rename idea, and it would address the concerns I
   brought up. I do think obsolete is the wrong word, as it sends the
   wrong message. The helpers are not obsolete; it is our _copy_ of them
   that is.
  
  Originally you said you would respect if I wanted the code out
  for v2.0, I said I would like it out at some point, not necessarily in
  v2.0. Junio said he was fine with that, but the proposals above don't do
  that.
  
  Now it seems you are changing your mind and you are OK with the code
  remaining in.
 
 My concerns were with people not noticing the README. Removing the code
 entirely is the way I thought of to address that. Junio suggested
 another way, which I would also be fine with. And it seems like a
 friendlier way than removal to handle it for v2.0, if we are going to
 remove the code entirely post-v2.0.

I don't see what is friendlier about this:

 % sudo pacman -Syu
 % cd ~/dev/my-hg-repo
 % git fetch
 fatal: Unable to find remote helper for 'hg'

The users will scratch their heads, wonder what's going on, investigate
themselves, and eventually they'll have to decide how to fix the issue
properly, and how to report it.

On the other hand:

 % git fetch
 WARNING: git-remote-hg is now maintained independently.
 WARNING: For more information visit https://github.com/felipec/git-remote-hg
 searching for changes
 no changes found

You think that's less friendly?

If you think so, I think you are totally biased towards whatever happens
to be the opinion of one person.

 As before, if your desire is to have the code out for v2.0, then say so.
 I think we should respect such a request.

As I said before, I do not wish the code to be removed for v2.0, I would
like to have only a warning. Either way, do whatever you want for v2.0,
it's your users you are hurting.

But if I do not hear *from Junio* that the code will be removed entirely
post-v2.0, hopefully replaced with stubs (which is obviously the most
user-friendly thing to do), I'll do what I said I'll do.

-- 
Felipe Contreras
--
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] remote-helpers: point at their upstream repositories

2014-05-17 Thread Felipe Contreras
James Denholm wrote:
 Felipe Contreras wrote:
  James Denholm wrote:
   On Fri, May 16, 2014 at 05:39:42PM -0500, Felipe Contreras wrote:
(...) I would venture to say you have never made a package in your
life.
   
   And you have, Felipe? Let us see the years of experience you surely have
   in the field.
  
  As a matter of fact, yes I've written many packages, for Debian, Fedora,
  ArchLinux, and others. Even Windows installers.
 
 I'd hardly say that a few PKGBUILDs count. I've written some myself, not
 hard to do.

Not hard, but Junio clearly hasn't done so.

 That said, if I had realised you were going to discuss such a trivial
 thing - _making_ packages rather than _maintaining_ them in a repo - I'd
 have dismissed your statement as mere idiotic vitriol.

Why would anybody write packages and not maintain them? Of course I'm
talking about maintaining packages.

 Do you honestly think that Junio has _never made a package?_ Never, on
 any of the systems he's ever touched, run makepkg or debuild or
 whathaveyou?

I didn't say _build_ a package, I said _write_ a package. And of course
I mean a significant package, that other people use, and as such needs
to have some maintenance.

 I could be wrong here, but I'm fairly sure that Junio is a *nix software
 developer of some kind or another. You know, given that he's the
 maintainer of git, kinda might be the case. And I really doubt that any
 *nix dev, _anywhere_, could have _any_ sort of success without looking
 sideways once or twice at a package builder, given that pre-release
 homebrewing of expected packages is only an absolutely critical part of
 testing.
 
 Come on, man. Don't be silly.

You are the one being silly, looking at a package builder doesn't give
you any insight about the way packaging is done in distributions. If
Junio has or hasn't done so is totally unimportant.

You are just talking about completely irrelevant stuff, so I'm going to
ignore your points about the matter.

  But that's a red herring. Even if was the worst packager in history,
  that doesn't make Junio's decision any more correct.
 
 No, but it would render your bizarre, tantrum-like accusations as
 generally baseless. I mean, I don't think anyone actually puts weight on
 them anyway, but hey, never hurts to shine a spotlight on nonsense.
 
The fact that you think packagers of git would simply package
git-remote-hg/bzr as well is pretty appalling.
   
   It's not an outlandish thought, in fact, I'd suggest it as probable -
   provided that they find the projects to be stable and of high quality.
  
  Do you want to bet?
 
 Not a betting man. However, ignoring that for a moment, I doubt we'd be
 able to agree on checks and balances for the case where
 git-remote-hg/bzr were rejected due to the code being of poor quality or
 unstable. So no, I won't bet, because you hold your own work and
 opinions as sacrosanct and infallible.

It is not poor quality or unstable, Junio said so himself when he
graduated them to the core.

I suppose you don't trust Junio's opinion either.

   You, or someone else, might have to tap them on the shoulder and play
   nice to _ensure_ they know about them (after all, we all know that
   packagers _never_ read READMEs, do they), but you're capable of that,
   I'm sure.
  
  In my experience packagers scratch their own itches, and if
  git-remote-hg/bzr are not their itch, I don't see why any amount of
  nice poking would make them package them. Some other packager would have
  to do it, not the Git packagers.
 
 If there's a demand, Felipe, and the build process is sane, I can't see
 why they wouldn't.

Your failure of foresight doesn't change what will actually happen in
the future.

Moreover, your argument that follows is a straw man, I argued that the
original maintainer of the git package wouldn't do the git-remote-hg
package, you didn't address that at all.

-- 
Felipe Contreras
--
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] remote-helpers: point at their upstream repositories

2014-05-16 Thread Felipe Contreras
Junio C Hamano wrote:
 Two announcements for their version 0.2 on the list archive are not
 quite enough to advertise them to their users.
 
 Signed-off-by: Junio C Hamano gits...@pobox.com
 ---
 
  * I am inclined to queue this for 2.0, and we would also need an
update to the release notes as well.
 
I am undecided about the revert I sent earlier in $gmane/248937;
with or without it, that is just a contrib/ thing that is not
well maintained inside our tree anyway.
 
  contrib/remote-helpers/README | 11 +++
  1 file changed, 11 insertions(+)
  create mode 100644 contrib/remote-helpers/README

NAK.

 diff --git a/contrib/remote-helpers/README b/contrib/remote-helpers/README
 new file mode 100644
 index 000..72a2df4
 --- /dev/null
 +++ b/contrib/remote-helpers/README
 @@ -0,0 +1,11 @@
 +The remote-helper bridges to access data stored in Hg and bzr will be

They are called Mercurial and Bazaar.

 +maintained outside the git.git tree in the repositories of its
 +primary author at:
 +
 +https://github.com/felipec/git-remote-hg
 +https://github.com/felipec/git-remote-bzr

If this is formatted in asciidoc the links won't appear as links. Do it
as I did:

 * https://github.com/felipec/git-remote-hg
 * https://github.com/felipec/git-remote-bzr

 +As a convenience, copies of the last-bundled version of these two
 +remote-helper bridges are kept here, but they may left stale.  Users
 +are encouraged to visit the above authoritative repositories for the
 +latest versions to get involved in its further developments.

 1) Most users will *never* see this README
 2) Most packagers will never see this README
 3) The people that do read this README will wonder *why* they are now
maintained separately.

Thanks for wasting all my hard work and sabotaging these projects.

Just as a heads-up. I *will* complain about this publicly and my blog is
visited by thousands of people.

I am requesting one last time:

 1) Add warnings *directly* into the tools themselves ASAP
 
You didn't have any problems adding warnings for pre-v2.0 behavior
that changed, nor did you have a problem adding the warning about
the new zsh completion that moved out of the bash one. Why would you
have a problem with this one?

 2) Replace the tools with stubs that point to the right locations at
the earliest convenience

I already sent patches for both, and they were ignored.

A failure to do both will result in a lack of visibility of the new
projects, and a decrease in the quality the users of git.git contrib
area's remote-helpers receive. I will consider that a deliberate attempt
to make the new projects experience unnecessary hardship.

-- 
Felipe Contreras
--
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 01/17] contrib: remove outdated README

2014-05-16 Thread Felipe Contreras
Junio C Hamano wrote:
 Felipe Contreras felipe.contre...@gmail.com writes:

  == contrib vs. core ==
 
  This is the only point relevant to contrib vs. core:
  
- We may be painted in a hard place if remote-hg or remote-bzr take
  us to a position where the Git as a whole is blocked while it is
  incompatible with the other side.
 
  It will never happen. I already argued against it[1], multiple times.
  Essentially making the tests optional removes any possibility of
  blockage (pluse many more arguments).
 
 I already said that your It will never happen is a handwaving, and
 I already saw you argued against it.

This is a red herring. Ignore the fact that it will never happen (which
it won't), the next point remains a FACT, and you conveniently ignore
it.

ANSWER THIS:

  Essentially making the tests optional removes any possibility of
  blockage (pluse many more arguments).

If the tests are optional, it doesn't matter if such change you are
worried about happens or not (it won't).

That's all there is to it. You made a wrong call. The tools *can* move
into the core, and you said they couldn't.

 You may have been interested in contrib/core in the thread, but that
 does not prevent others from considering other aspects of the issue
 and different and possibly better solutions, which was to unbundle.

That is IRRELEVANT to the fact that the tools *could* move into the
core. You are using arguments (refuted) to demonstrate that the tools
*might be better served* by being unbundled, in order to explain why
they *could not* move into the core.

That's a red herring.

 I was very confident back in that thread that the remote Hg bridge
 would not merely survive but would serve its users well as a
 standalone project,

And you were wrong.

 There is a greater risk for these bridges to become unmaintained if we
 do not have them in my tree, and that would only hurt our users.

 But I did not see that particular risk at all for the remote Hg
 bridge.  You have been very interested in maintaining it, and I
 don't think I ever had to prod you to respond to an issue raised on
 the list.  It is an apples-and-oranges comparison to bring up
 git-svn/p4.

In other words; if I had done a poorer job of maintaining these tools,
they would have had a higher chance of moving into the core?

If that's the case I would gladly stop any maintenance on them. Just say
the word.

I worked extremely hard so they could become part of the core, if being
part of the core means I have to maintain them less, so be it.

 Besides, I want to see the git-core has the best thing among
 competing implementations for a specific niche subtask perception
 changed in the longer term so that it becomes natural for users to
 say something like For this particular task, there is no support in
 what comes with core (or there is a tool that comes with core to
 address similar issues but in a way different from what you want),
 and the go-to tool these days for that kind of task is to use this
 third-party plugin,

Where are you saying that? Nowhere, that's where. Therefore every tool
you unbundle, you are throwing to the wolves.

 Things like git imerge are helping us to go in that direction.  I
 was hoping that the remote Hg bridge to be capable of becoming the
 first demonstration to graduate out of contrib/ that shows the users
 that is the case, not with just talk but with a specific example.

You told me you wanted them to move to the core, you even moved them to
the core.

Then after years of work you change your mind, AGAINST my explicit will
and with clear strong arguments AGAINST your apparently newly conceived
idea. And idea you didn't explain clearly, and which you didn't give any
chance of being refuted.

In other words; an idea which very well COULD BE WRONG, and which very
well could impact negatively many Git users.

But you cannot even ponder the notion that you could possibly be wrong.

 After seeing these discussions, it tells me that the code is not fit
 for the core (also [*3*]), and I think there no longer is any reason
 for us to still talk only about contrib vs core. As you already said,
 you do not want to see them in contrib/,

No, I want to see them in the core, and you said you did too. More
importantly the vast majority of our users would want to see them in the
core, therefore the discussion of contrib vs. core is pretty much
relevant, but you don't care about them, do you?

As I said, I will complain about this publicly _to our users_, which you
are disregarding completely with this poorly thought decision and the
subsequent ones.

-- 
Felipe Contreras
--
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] remote-helpers: point at their upstream repositories

2014-05-16 Thread Felipe Contreras
Paolo Ciarrocchi wrote:
 On Fri, May 16, 2014 at 10:41 AM, Jeff King p...@peff.net wrote:
  But that being said, this is Felipe's code. While we have a legal right
  to distribute it in v2.0, if he would really prefer it out for v2.0, I
  would respect that.
 
 My understanding is that Felipe would prefer to keep it _in_ the git.git
 repository and eventually get it included in the core.

That is correct.

-- 
Felipe Contreras
--
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] remote-helpers: point at their upstream repositories

2014-05-16 Thread Felipe Contreras
Jeff King wrote:
 On Thu, May 15, 2014 at 03:56:29PM -0700, Junio C Hamano wrote:
 
  Two announcements for their version 0.2 on the list archive are not
  quite enough to advertise them to their users.
 
 I do not think this README nor a mention in the release notes will get
 their attention either, and many people (and packagers) will continue to
 use the stale versions forever until those versions go away.
 
 I would much rather _replace_ them with a README in the long run, and
 people will notice that they are gone, and then use the README to update
 their install procedure.
 
 For 2.0, I am hesitant to do that, though I do not have a problem with a
 README like this as a heads-up to prepare packagers for the future. I
 say hesitant because people may have been test-packaging 2.0.0-rc3 in
 preparation for release, and it will be annoying to them to suddenly
 switch.

I agree, that's why I sent patches that:

 1) Add a warning for v2.0 (which already has problems)

So everything keeps working as well as in the release candidates,
except a warning is introduced each time they do a fetch, push, or
clone operation (use the remote-helpers)

 2) Replace the tools with stubs

So when they try to fetch, push, or clone, they get an error, and
nothing else happens.

There's an additional README for the people that want to read more, but
if you don't put stubs, users might try to do what worked before:

  % git clone hg::http://selenic.com/repo/hello
  fatal: Unable to find remote helper for 'hg'

It's much better to report:

  git-remote-hg is now maintained independently.
  For more information visit https://github.com/felipec/git-remote-hg

 But that being said, this is Felipe's code. While we have a legal right
 to distribute it in v2.0, if he would really prefer it out for v2.0, I
 would respect that.

That's right, you have the legal right to distributed it.

It is not my wish to disrupt v2.0, so I think adding a warning should be
sufficient.

Eventually I would prefer if they were not distributed, and replaced
with stubs, not just because it would help the out-of-tree projects
gather more visibility, but also because users would be better served by
not having poorly maintained or unsynchronized code. Hopefully for v2.1.

 I would prefer to instrument the code with warnings, as that is the sort
 of thing a packager moving from -rc3 to -final might not notice, and
 shipping the warnings to end users who did not package the software in
 the first place will not help them. It is the attention of the packagers
 (and source-builders) you want to get.
 
 Of course that is all just my two cents, and is mostly predicated on
 there _being_ packagers of the contrib/ tools. It looks like there is a
 Debian package in RFP status, but I don't know if that is following the
 new release closely. And I don't know about other systems.

As far as I understand most distributions don't do anything special with
contrib, they just put everything under /usr/share.

It is unlikely packagers will notice any change in one of the dozens
tools in contrib, so they'll make no changes to the packages.

So if the user did:

 % ln -s /usr/share/git/remote-helpers/git-remote-hg ~/bin/git-remote-hg

The expectation would be that this keeps working even if the package
doesn't change (it just adds a warning). Eventually it will stop working
with an error, but the package still won't change.

The distributions that do something special about remote-helpers (AFAIK
it's only debian's git-bzr) would need to change, and sooner or later
they will if there's only stubs there.

Cheers.

-- 
Felipe Contreras
--
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 01/17] contrib: remove outdated README

2014-05-16 Thread Felipe Contreras
William Giokas wrote:
 On Fri, May 16, 2014 at 03:08:51AM -0500, Felipe Contreras wrote:
  This is a red herring. Ignore the fact that it will never happen (which
  it won't), the next point remains a FACT, and you conveniently ignore
  it.
 
 It may not block git being released, but as we can see from the recent
 patches that were needed to enable hg 3.0 support it can break and would
 have to follow *both* mercurial and git upstreams, not just git's.

Indeed, it *can* happen, nobody has argued otherwise. The thing is how
*likely* is it that it will happen again.

As I said, in my experience developing this there has never been a
single instance where such a change was required for *newer* versions of
Mercurial.

From what I can tell this is an exceptional situation.

And it makes sense that when it happened, it happened exactly in the
part where I wrote custom push() method. Mercurial has unstable API, but
in unstable API's are part that are more stable than others. Generally
the higher level the API is, the more stable it tends to be.

The Linux kernels makes an even weaker promise of API stability than
Mercurial does, but even then, the higher the API you use, the less
likelihood you have of breakage. I've seen this in practice many times.

And it does makes sense that for practical purses Mercurial would try to
avoid changes in the higher level API, which require changes in many
places, and not so much in lower level APIs, which might require a few
changes here and there.

The problem is that in order to replace the higher level API push(), I
had to use the lower level API, and that's where the breakage happened,
it was not unlikely. It is unlikely that another change in this
particular API will happen soon, but not extremely so.

As I already explained, this can be mitigated by contacting the
Mercurial developers and figure out if their high-level API can
accommodate the kind of functionality git-remote-hg needs. Maybe by
adding a new option, or maybe by adding another high-level helper
function.

Either way, I doubt Junio is qualified at all to discern between the
likelihood of future Mercurial API changes that would break
git-remote-hg. He has seen one, and he is wrongly assuming there are
more to come.

 After thinking about this for a while, I would have to agree with
 Junio That it's better if a bridge between to actively developed
 applications not be coupled to one.

How exactly would it be better?

If you concede that the Git release wouldn't be affected, then assuming
a hypothetical future where git-remote-hg is bundled, and we have a
Mercurial API breakage, we would have:

 Git  v2.5 fail, Git = 2.5 get the fix

If we unbundle, we have:

 git-remote-hg  v0.5 fail, git-remote-hg = v0.5 get the fix

What is the big difference?

I presume you would say that git-remote-hg v0.5 could be released
earlier than Git v2.5, so the users would get the fix faster. However,
that is not the case if the breakage is detected *before* the Mercurial
release happened, in which case both Git v2.4 and git-remote-hg v0.4
would already contain the fix, and it doesn't matter much which was
released first.

The problem is that I wasn't doing the continuous integration with the
development version of Mercurial, which I am now, so these kind of
exceptional issues would be detected earlier.

Moreover, it is likely that the distribution package for git-remote-hg
would not be maintained as rigorously as the Git package. It might not
even be part of the official packages (e.g. ppa or AUR). Therefore, even
if the git-remote-hg v0.4 happens earlier, it might reach the users
later.

Furthermore, we are talking about a single script that can be installed
by hand easily. The users can simply override their distribution's
script and install by hand the latest version, as many have been doing
already when they report errors and want the latest fix.

Even more. git-remote-hg will not have maintenance releases, if an
exceptional issue like this happens, it can be back-ported to Git v2.3.x,
Git v2.2.x, and so on.

It seems like a very feeble argument in favor of unbundling *at best*.

 This does not mean that I think git-remote-hg is not of a quality to be
 in the git.git tree, but it is simply a fact of development and
 stability. If git's remote-helper stuff changes but mercurial doesn't,
 we're fine because, having seen the speed of your fixes, we would have a
 fix before the next release without a doubt. However, if mercurial
 changes, like it just did, then git itself would need to make a release
 to have it actually work with the newest release.

That is not true. In this particular case, because I didn't build
against the development version of Mercurial, yes, but not for the
future.

If I had the tests I have in place now, we would have detected the
change earlier, and Git v1.9.2 would *already* contain the fix, and when
Mercurial v3.0 got released we wouldn't need to make a Git release in
response (same goes for unbundled

Re: [PATCH v2 01/17] contrib: remove outdated README

2014-05-16 Thread Felipe Contreras
William Giokas wrote:
 On Fri, May 16, 2014 at 05:21:36AM -0500, Felipe Contreras wrote:
  How exactly would it be better?
  
  If you concede that the Git release wouldn't be affected, then assuming
  a hypothetical future where git-remote-hg is bundled, and we have a
  Mercurial API breakage, we would have:
  
   Git  v2.5 fail, Git = 2.5 get the fix
  
  If we unbundle, we have:
  
   git-remote-hg  v0.5 fail, git-remote-hg = v0.5 get the fix
  
  What is the big difference?
 
 It's a matter of scope and where the releases happen, that is all.

Of course the core vs. out-of-tree question is a matter of where the
releases happen. The question here was: in which way is out-of-tree a
better place?

If it's a matter of scope, that is; should a foreign vcs interface tool
be bundled in the Git core? Then that question applies not only to
git-remote-hg/bzr, but also git-p4, git-cvs, git-svn, and others.

The answer to the first question seems to be; it's not at all clear (in
fact there doesn't seem to be any valid argument in favour of
out-of-tree). The answer to the second question is; we are not asking
that question right now (for the moment foreign vcs tools should remain
part of the Git core).

I started the graduation series by saying there doesn't seem to be any
good reason not to, and Junio agreed. Now Junio doesn't agree, but it's
till the case there's no good reason not to.

-- 
Felipe Contreras
--
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/RFC] Always auto-gc after calling a fast-import transport

2014-05-16 Thread Felipe Contreras
Stepan Kasal wrote:
 From: Johannes Schindelin johannes.schinde...@gmx.de
 Date: Mon, 9 Apr 2012 13:04:35 -0500
 
 After importing anything with fast-import, we should always let the
 garbage collector do its job, since the objects are written to disk
 inefficiently.
 
 This brings down an initial import of http://selenic.com/hg from about
 230 megabytes to about 14.
 
 In the future, we may want to make this configurable on a per-remote
 basis, or maybe teach fast-import about it in the first place.

Actually I tested this patch and it makes no difference. Before and
after the patch the repository size is exactly the same (and so is the
run-time).

That is because after the initial import there are no loose objects,
every thing is into one big pack, so `git gc --auto` does nothing.

 Could anyone on the list try to reproduce the performance problem
 that triggered this?

I'd say this patch is not doing anything in recent versions of Git.

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


Re: [msysGit] [PATCH] transport-helper: add trailing --

2014-05-16 Thread Felipe Contreras
Johannes Schindelin wrote:
 Hi,
 
 On Thu, 15 May 2014, Stepan Kasal wrote:
 
  From: Sverre Rabbelier srabbel...@gmail.com
  Date: Sat, 28 Aug 2010 20:49:01 -0500
  
  [PT: ensure we add an additional element to the argv array]
 
 IIRC we had problems with refs vs file names.

Actually I tried to push a file named refs/heads/master and I saw the
issue. I'd say it's a very rare issue, and I don't see how it could be
triggered with normal files since all the ref names have the full name.
That being said I don't think it would hurt.

-- 
Felipe Contreras
--
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] config: be strict on core.commentChar

2014-05-16 Thread Felipe Contreras
Nguyễn Thái Ngọc Duy wrote:
 We don't support comment _strings_ (at least not yet). And multi-byte
 character encoding could also be misinterpreted.
 
 The test with two commas is deleted because it violates this. It's
 added with the patch that introduces core.commentChar in eff80a9
 (Allow custom comment char - 2013-01-16). It's not clear to me _why_
 that behavior is wanted.
 
 Signed-off-by: Nguyễn Thái Ngọc Duy pclo...@gmail.com
 ---
  config.c  | 8 ++--
  t/t7508-status.sh | 6 --
  2 files changed, 6 insertions(+), 8 deletions(-)
 
 diff --git a/config.c b/config.c
 index a30cb5c..05d909b 100644
 --- a/config.c
 +++ b/config.c
 @@ -826,8 +826,12 @@ static int git_default_core_config(const char *var, 
 const char *value)
   if (!strcmp(var, core.commentchar)) {
   const char *comment;
   int ret = git_config_string(comment, var, value);
 - if (!ret)
 - comment_line_char = comment[0];
 + if (!ret) {
 + if (comment[0]  !comment[1])
 + comment_line_char = comment[0];
 + else
 + return error(core.commentChar should only be 
 one character);
 + }

Small nit:

  if (ret)
  return ret;
  if (comment[0]  !comment[1])
  comment_line_char = comment[0];
  else
  return error(core.commentChar should only be one character);

-- 
Felipe Contreras--
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] remote-helpers: point at their upstream repositories

2014-05-16 Thread Felipe Contreras
, then report the
problem to the packagers. Then they might include the obsolete
directory, or they might decide not to.

  * The packagers that pick up from contrib/remote-helpers and
arrange the scripts to be on user's PATH will find their build
broken, because they are no longer where they expect them to be.
They will notice obsolete(or graduated), and read README.
 
- They can choose to pick them up from obsolete, perhaps for
  expediency, perhaps for their change aversion, but that will
  not last once we grabbed their attention, and they will switch
  their upstream in some later release once such a choice makes
  them feel dirty enough.
 
- They can choose to switch their upstream right now in response
  to the breakage.

That's not how packaging works.

Ask your friend Jonathan Nieder, the packager of Git for Debian, if he
would be interested in maintaining a new git-remote-bzr package. My
guess is that he wont. Maybe he would, but he can assure you that other
packages wont.

The fact of the matter is that users cannot depend on packages any more.
Maybe they'll be packaged, maybe not. If they are it will take a long
time before they do. In the meantime they'll have to manually install
them all all out-of-tree tools.

 I would say that the options I see are these three, and I would rank
 the warn every time as less helpful to end-users:
 
  - rename contrib/remote-helpers to contrib/obsolete-remote-helpers
and add README to point at the upstream.

I don't like this. This would only reward lazy packagers, it wouldn't be
clear to the user what happened at first, and even after they use the
new place, they wouldn't be disserviced by that code.

  - remove contrib/remote-helpers scripts and add README.

Again, the user will still see an unhelpful message at first. I guess it
wouldn't be as bad as the option 1, but it's not as good as the patch I
proposed where they are replaced with stubs (plus a README).

  - warn every time the user runs the scripts.

I suggested this, but only as a temporary measure.


I am surprised that we are talking about the ways to proceed, and which
ways would affect the users less, and what would be the repercussions.
In particular, your obvious disconnection from the way packaging is
done, I would venture to say you have never made a package in your life.
The fact that you think packagers of git would simply package
git-remote-hg/bzr as well is pretty appalling. You should have thought
about all this *before* making your stupid decision.

-- 
Felipe Contreras
--
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] remote-helpers: point at their upstream repositories

2014-05-16 Thread Felipe Contreras
Jeff King wrote:

 I agree with the line of reasoning you laid out in your email,
 especially:

What a shock.

  I would say that the options I see are these three, and I would rank
  the warn every time as less helpful to end-users:
  
   - rename contrib/remote-helpers to contrib/obsolete-remote-helpers
 and add README to point at the upstream.
  
   - remove contrib/remote-helpers scripts and add README.
  
   - warn every time the user runs the scripts.
 
 I hadn't thought of the rename idea, and it would address the concerns I
 brought up. I do think obsolete is the wrong word, as it sends the
 wrong message. The helpers are not obsolete; it is our _copy_ of them
 that is.

Originally you said you would respect if I wanted the code out
for v2.0, I said I would like it out at some point, not necessarily in
v2.0. Junio said he was fine with that, but the proposals above don't do
that.

Now it seems you are changing your mind and you are OK with the code
remaining in.

Do what you will, but I already told you what I will do in response.

-- 
Felipe Contreras
--
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] transport-helper: add trailing --

2014-05-15 Thread Felipe Contreras
Stepan Kasal wrote:
 From: Sverre Rabbelier srabbel...@gmail.com
 Date: Sat, 28 Aug 2010 20:49:01 -0500
 
 [PT: ensure we add an additional element to the argv array]
 
 Signed-off-by: Stepan Kasal ka...@ucw.cz
 ---
 
 Hi,
   this patch was present in msysgit from Mar 2012.
 Do you like it?

Adding an extra '--' would make sense if we do something like
'git fast-export $stuff master' and there was a file named master.
However, we do 'git fast-export $stuff refs/heads/master', which case
the '--' is a no-nop *always*.

It doesn't hurt to add it though. I think.

-- 
Felipe Contreras
--
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/RFC] Always auto-gc after calling a fast-import transport

2014-05-15 Thread Felipe Contreras
Stepan Kasal wrote:
 From: Johannes Schindelin johannes.schinde...@gmx.de
 Date: Mon, 9 Apr 2012 13:04:35 -0500
 
 After importing anything with fast-import, we should always let the
 garbage collector do its job, since the objects are written to disk
 inefficiently.

I'm not sure how slow `git gc --auto` is with a totally unpacked
repository, but it guess it will be slow enough that some people might
not want to do the gc initially.

Not many people have complained about the size of the repoitory after
cloning, so I think it should be OK to let users call `git gc` when they
wish to.

-- 
Felipe Contreras
--
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] contrib: remote-helpers: add move warnings (v2.0)

2014-05-14 Thread Felipe Contreras
Ronnie Sahlberg wrote:
 On Tue, May 13, 2014 at 4:37 PM, Felipe Contreras
 felipe.contre...@gmail.com wrote:
  But if I have to adjust for saying that (which was true), what do you
  say to Junio for saying this? (which was not)
 
 I know I shouldn't but I will respond anyway.
 
 The problem is about you and your behaviour. Not Junio or anyone else.

Right. So when I say something moderately aggressive (but true), I'm the
problem, when Junio says something worst (and false), he is not.

Got it.

-- 
Felipe Contreras
--
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 01/17] contrib: remove outdated README

2014-05-14 Thread Felipe Contreras
Philippe Vaucher wrote:
  I have had patches and contributions rejected in the past, sometimes
  rudely. Same has happened to many others, if you contribute long
  enough, it is pretty much guaranteed that it will happen to you.
  Maintainer is wrong, or you are wrong, or someone is just having a bad
  day.
 
  This is not about a couple of patches I worked in a weekend being
  rejected. This is about the work I've been doing since the past two
  years almost like a full-time job dropped to the floor with no
  explanation at all. I started with the expectation that they were going
  to move to the core, because Junio said so, then he changed his mind and
  didn't want to explain his reasoning.
 
  It's not just a bad day.
 
 Here are two posts where Junio and Michael Haggerty explain the
 reasoning to you:
 
 - http://article.gmane.org/gmane.comp.version-control.git/248727
 - http://article.gmane.org/gmane.comp.version-control.git/248693
 
 Basically, in your case it boils down to your social manners.

You are not paying attention at all.

Junio did *not* use my social manners as a reason to block the
graduation, nor the quality of the code, he used a *TECHNICAL* reason.

Prior to his decision there were no complaints about my manners since
I returned. It was his *TECHNICAL* decision that triggered this.

Junio never explained his *TECHNICAL* reason, and Michael Haggerty
simply said there are good technical arguments for and against
moving git-remote-hg out of contrib, that was all his explanation for
the *TECHNICAL* reason.

You, and other people, are using the behavior I displayed *AFTER* Junio
made his *TECHNICAL* decision as the cause for his decision not to
graduate. That's a wrong direction fallacy.

-- 
Felipe Contreras
--
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] contrib: remote-helpers: add move warnings (v2.0)

2014-05-14 Thread Felipe Contreras
Junio C Hamano wrote:
 So at this point, I would have to say that the users of remote-hg is
 taken hostage by its author.

The users of remote-hg are being affected negatively *because* of your
decisions.

You have the power to help them by answering a simple question. Yet you
refuse to do that.

It's all on you.

-- 
Felipe Contreras
--
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/4] remote-hg: more improvements

2014-05-14 Thread Felipe Contreras
 that the government is spying on everyone. Nah!
that's haaard. Let's obliterate the little guy.

-- 
Felipe Contreras
--
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] contrib: remote-helpers: add move warnings (v2.0)

2014-05-14 Thread Felipe Contreras
Junio C Hamano wrote:
 Felipe Contreras felipe.contre...@gmail.com writes:
 
  Junio C Hamano wrote:
  So at this point, I would have to say that the users of remote-hg is
  taken hostage by its author.
 
  The users of remote-hg are being affected negatively *because* of your
  decisions.
 
  You have the power to help them by answering a simple question. Yet you
  refuse to do that.
 
  It's all on you.
 
 That is exactly what I would call taking users hostage.
 
 I think I already answered that one question:

 in $gmane/248853 with:
 
 You certainly are acting like one, aren't you?
 
 Do you need more?

You know full well this is not the question I asked you repeatedly. Stop
trying to spin the readers.

I asked you here:
http://article.gmane.org/gmane.comp.version-control.git/248683

And here:
http://article.gmane.org/gmane.comp.version-control.git/248348

And here:
http://article.gmane.org/gmane.comp.version-control.git/248368

I made it clear you were not answering the qustion here:
http://article.gmane.org/gmane.comp.version-control.git/248685

And here:
http://article.gmane.org/gmane.comp.version-control.git/248701

And here (apparently deleted mail):
1400013572-30232-1-git-send-email-felipe.contre...@gmail.com

And probably many other times.

And I will ask you once again.

Please answer this *one* question:

1) Please clarify the reason why you blocked the graduation of remote
   helpers. Please give the full rationale and do not point to other
   mails, or other peoples' explanations. If necessary attach such
   explanations to your full reasoning.

This is the *one* question you have refused to answer over and over.

-- 
Felipe Contreras
--
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 01/17] contrib: remove outdated README

2014-05-14 Thread Felipe Contreras
Jeff King wrote:
 On Wed, May 14, 2014 at 02:35:08PM -0500, Felipe Contreras wrote:
 
  Prior to his decision there were no complaints about my manners since
  I returned. It was his *TECHNICAL* decision that triggered this.
 
 There have been several complaints about your behavior since you
 returned[1,2,3,4],

 [1] http://article.gmane.org/gmane.comp.version-control.git/247108

This is not a complaint, you are merely saying you are not interested in
discussing with me without mentioning any bad behavior at that time.

And this is not related to remote-hg/bzr.

 [2] http://article.gmane.org/gmane.comp.version-control.git/247121

This is a complaint without pointing out what are the specific instances
of bad behavior, present or past.

 [4] http://article.gmane.org/gmane.comp.version-control.git/247168

This is not a complaint about bad behavior. Unless you think making a
bet is bad behavior.

And this is unrelated to remote-hg/bzr.

 [3] http://article.gmane.org/gmane.comp.version-control.git/248000

This is a complaint about a factual statement, a prediction about the
future that turned out to be true. Unflattering factual predictions can
hardly be considered bad behavior

And this is unrelated to remote-hg/bzr.

 I have not paid all that close attention to this remote-hg contrib
 argument. Maybe you are 100% right and Junio is wrong and lying and
 cannot back up his decision, but somehow needs to cover it up through
 rhetoric. But that does not at all match my past experiences with
 Junio's behavior.

The fact that something hasn't happened in the past doesn't mean it's
not happening right now.

I am still waiting for Junio's answer to *one* question.

If your expectation about Junio is correct, it should be easy for him to
say Felipe is wrong, here's where I explained in full my rationale
of the technical issues that triggered my decision to demote the remote
helpers, and as you can see, the importance of the decision is well
matched by the detail of my explanation. But he is not doing that, is
he?

It would be easy for him to do that, why isn't he doing so? You are
giving him a free pass.

 I can understand that it hurts to be called a troll. I really do believe
 you are trying your best to improve git. But I hope you also understand
 that in terms of the time and emotional drains on other participants,
 from our perspective interacting with you is quite similar to
 interacting with a troll.

Yes, I can understand that, and I would understand if Junio said I was
acting *like* a troll. But he unequivocally said I was a troll, even
when I asked for clarification.

Maybe that's acceptable to you. That's where I draw the line.

 Your continued arguing on this topic does not seem like it is going
 anywhere,

I'm not arguing on this topic any more. I gave up on Junio trying to
answer my *one* question. The remote helpers will not graduate because
Junio said so, and he didn't explain his reasoning. That's an
unfortunate fact.

All I'm trying now is to move foward, by:

 1) Add a warning about the new location of remote-helpers

 (Junio chose to argue instead)

 2) Remove the remote-helpers and replace them with warning stubs

 (Somehow the patches didn't reach the mailing list)

 3) Make sure everything is in place for users and packagers to use the
new location (it can't never be as good as graduating to the core)
 
 (The fact that Junio is preventing 1) and 2) doesn't help)

Additionally:

 4) Correct any misconceptions in the lingering threads

 and I believe is wasting time and hurting the atmosphere of
 the list. Please stop.

Tell other people to stop. I am merely replying to misconstrued
conceptions. If other people stop, so would my replies.

I am not going to let the record about such an important decision be
tainted by these misconceptions.

 [5] Even though you were previously asked to leave, I believe people
 on the list gave interacting with you a fair shot in the past month
 or two. And we somehow still ended up at the same place.  That's
 just my perception, of course. I'd invite anybody watching to form
 their own opinions.

And that's entirely Junio's fault for making a haste decision, and
giving no rationale about it.

Given all the time I've spent on these tools, I wasn't willing to let my
work be threated like crap by Junio. I deserved an explanation, and if
he wasn't going to give one, I'd rather leave the project trying to get
one (even if that meant behaving in a way other people considered
bad).

And BTW, I still think git-archimport and git-quiltimport should be
demoted from the core, and I think the contrib area should be cleaned
up, many of the tools removed, and others maintained out-of-tree. Do not
think I sent those patches to troll.

Cheers.

P.S. While we disagree on many topics, I do appreciate the fact that you
are never condescending and try to be honest, and when it becomes
difficult to do that, you explain so and leave the discussing. Never
letting

Re: [PATCH 0/4] remote-hg: more improvements

2014-05-14 Thread Felipe Contreras
David Kastrup wrote:
 Felipe Contreras felipe.contre...@gmail.com writes:
 
  Philippe Vaucher wrote:
 
 [...]
 
   Do you feel Felipe is in control of what you label bad behavior?  Do you
   feel you are in control over how you react to his behavior?
  
  I feel that Felipe cannot control this (or decided not to),
 
  I am pretty much in control of my behavior. Those who know me
  personally know that I *never* get angry.
 
 You are missing the point.  The point is not what effect your behavior
 has on you but what it has on others.

If me saying I do not believe in God has a negative effect on Mark,
your answer seems to be do not tell Mark the truth. If Mark was a
co-worker and I had no option but to interact with him, I would probably
do something along those lines if possible. But if Mark was a member of
an open source project, I do have an option and I'd rather tell it like
it is. If Mark has a problem with that, I can always avoid Mark, or just
leave the project (say if Mark was the maintainer).

In both cases Mark is wrong. I do understand that most people would
rather comprimise their beliefs in order to win penguing points. I'm
not that way.

If I can't speak my mind in an open source project where I'm
contributing my time *for free*, I do not want to be part of that
project. It's the project that's wrong, not me, and it's the project
that looses, not me.

-- 
Felipe Contreras
--
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/4] remote-hg: more improvements

2014-05-14 Thread Felipe Contreras
David Kastrup wrote:
 Shouting your God is an imaginary shithead every time you see Mark

There's no point in discussing with an unconstructive person as you.
I've made my point, you are just talking nonsense.

Every rational person on this list knows that if I wanted to, I could be
much more offsensive and insulting.

-- 
Felipe Contreras
--
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 01/17] contrib: remove outdated README

2014-05-14 Thread Felipe Contreras
Junio C Hamano wrote:
 Felipe Contreras felipe.contre...@gmail.com writes:
  Junio never explained his *TECHNICAL* reason, and Michael Haggerty
  simply said there are good technical arguments for and against
  moving git-remote-hg out of contrib, that was all his explanation for
  the *TECHNICAL* reason.

 I am not interested in distinction between technical and social that
 much.  The points that were raised in the thread started by John
 Keeping, and some of the points that came to my mind while on that
 thread, even though I may not have mentioned in *that* thread, that
 affected the way *I* thought about the issue are these (not
 exhaustive):

Let's be clear; the discussion in that thread was contrib vs. core. Most
of the points you mention below are not related to that.

== contrib vs. core ==

This is the only point relevant to contrib vs. core:

  - We may be painted in a hard place if remote-hg or remote-bzr take
us to a position where the Git as a whole is blocked while it is
incompatible with the other side.

It will never happen. I already argued against it[1], multiple times.
Essentially making the tests optional removes any possibility of
blockage (pluse many more arguments).

This is the crux of the problem, because as far as I know, it's the only
suppsed argument against contrib vs. core. An argument very weak and
already refuted.

I repeatedly asked Junio to clarify his reasoning, because it can't
possibly be that this is the only reason, and that's the full rationale.

If this is it. Then it's very clear: core wins.

== bundle vs. unbundle ==

The rest of the arguments are *not* related to contrib vs. core. They
are a red herring, but I'll answer anyway.

  - A remote-helper has to depend on both sides.  Keeping it in
either contrib/ or in core, as opposed to unbundling, may make
things easier for the remote-helper maintainer, because at least
it would allow the helper to advance with Git in lock-step (but I
never heard that you do not prefer unbundling for this reason).

I am the maintainer I told you that wasn't the way to go and I'm telling
you again.

  - In a longer term, a properly maintained remote-helpers should
work with wide varieties of Git and the remote system versions
anyway, so unbundling would be logically the more correct thing
to do.

I already argued against this (and so did you[2]); the same argument
applies to git-p4, git-cvs, git-svn, git-archimport, etc.

We are not seeing efforts to unbundle those. Why? Because it would be
detrimental to our users, for many reasons, starting by the fact that
there's no good visibility of out-of-tree tools.

  - Unbundling would make it less easier to use the remote-helpers
for people who are used to keep up with my tree and pick them up
from contrib/, but that is a tiny minority these days.  Most
people use what distros package, and the distros that already
package contrib/ remote-helpers will switch their upstream to
unbundled repositories in order not to regress their packages for
their users.

That is not true. Distributions mostly put everything in contrib/ into
/usr/share/git without much care about what does what. If something is
missing the users might notice, but the packages wouldn't. It would
require different packagers that care to create the new packages, if it
happens at all. The new packages might be created in a ppa, or some
other third-party place not very visible.

If proper packages manage to end up in the main distribution
repositories, it will take a long time, and in the meantime users will
be left with a bad taste in their mouth.

It will take even more time if these tools remain in contrib/ because
nobody will notice anything, until bugs start to pile up.

  - On the other hand, unbundling will make it easier for the the
end-users (both the ones who are fed distro packaged versions and
the ones who build from the source _and_ who overcome the less
easier because now they have to pull from not just me but from
the unbundled places inconvenience) to keep up with the
leading/bleeding edge, because the remote-helpers do not have to
freeze at the same time other parts of Git are frozen before the
release, and users and distros can pick improved remote-helpers
up and even mix and match, when they have some other reason
that prevents them from updating Git itself.

Users don't care much about being on the bleeding edge. They care that
their tools keep working and in the same way. For that it's more
important that the maintainers have as many eyes as possible no the
patches. And sending the patches on git@vger.kernel.org has certain
helped in that regard. You want to take that away from them.

Additionally, they care that the tools are easy to set up. Being able to
clone Mercurial repositories from an out-of-the-box version of Git is
much more important to them than being on the bleeding edge.

Plus this also applies got

Re: [PATCH v2 01/17] contrib: remove outdated README

2014-05-14 Thread Felipe Contreras
Martin Langhoff wrote:
 On Wed, May 14, 2014 at 7:28 PM, Felipe Contreras
 felipe.contre...@gmail.com wrote:
  Do we no longer have to be afraid of that? WHY? All the responses from
  the contrib cleanup patches seem to suggest that pretty much *everyone*
 
 The responses also been clear in that you are toxic.

You are replying to a mail about a *TECHNICAL* reason. Junio made a good
job of concentrating on the technical side.

If you are not willing or unable to concentrate on the technical side,
reply to something else, you are just tainting the discussion.

If you are willing to concede that Junio made a wrong technical
decision, I'd be willing to discuss about the social issues that
happened *after* that with you. But I doubt you are interested in doing
either one of those, so I don't don't see what's the point of you even
replying.

-- 
Felipe Contreras
--
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/2] wincred: avoid overwriting configured variables

2014-05-13 Thread Felipe Contreras
On Tue, May 13, 2014 at 1:34 AM, Erik Faye-Lund kusmab...@gmail.com wrote:
 On Tue, May 13, 2014 at 8:01 AM, Stepan Kasal ka...@ucw.cz wrote:
 From: Pat Thoyts pattho...@users.sourceforge.net
 Date: Wed, 24 Oct 2012 00:15:29 +0100

 Signed-off-by: Pat Thoyts pattho...@users.sourceforge.net
 Signed-off-by: Stepan Kasal ka...@ucw.cz
 ---
  contrib/credential/wincred/Makefile | 4 
  1 file changed, 4 deletions(-)

 diff --git a/contrib/credential/wincred/Makefile 
 b/contrib/credential/wincred/Makefile
 index 39fa5e0..e64cd9a 100644
 --- a/contrib/credential/wincred/Makefile
 +++ b/contrib/credential/wincred/Makefile
 @@ -1,9 +1,5 @@
  all: git-credential-wincred.exe

 -CC = gcc
 -RM = rm -f
 -CFLAGS = -O2 -Wall
 -

 Would it be better to set these if not already set, i.e:

 -CC = gcc
 -RM = rm -f
 -CFLAGS = -O2 -Wall
 +CC ?= gcc
 +RM ?= rm -f
 +CFLAGS ?= -O2 -Wall

 instead?

Set by whom? If it's by the environment you should be running 'make -e'.

-- 
Felipe Contreras
--
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] contrib: completion: fix 'eread()' namespace

2014-05-13 Thread Felipe Contreras
Otherwise it might collide with a function of the same name in the
user's environment.

Suggested-by: SZEDER Gábor sze...@ira.uka.de
Signed-off-by: Felipe Contreras felipe.contre...@gmail.com
---
 contrib/completion/git-prompt.sh | 16 
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh
index 96b8087..853425d 100644
--- a/contrib/completion/git-prompt.sh
+++ b/contrib/completion/git-prompt.sh
@@ -270,7 +270,7 @@ __git_ps1_colorize_gitstring ()
r=$c_clear$r
 }
 
-eread ()
+__git_eread ()
 {
f=$1
shift
@@ -339,9 +339,9 @@ __git_ps1 ()
local step=
local total=
if [ -d $g/rebase-merge ]; then
-   eread $g/rebase-merge/head-name b
-   eread $g/rebase-merge/msgnum step
-   eread $g/rebase-merge/end total
+   __git_eread $g/rebase-merge/head-name b
+   __git_eread $g/rebase-merge/msgnum step
+   __git_eread $g/rebase-merge/end total
if [ -f $g/rebase-merge/interactive ]; then
r=|REBASE-i
else
@@ -349,10 +349,10 @@ __git_ps1 ()
fi
else
if [ -d $g/rebase-apply ]; then
-   eread $g/rebase-apply/next step
-   eread $g/rebase-apply/last total
+   __git_eread $g/rebase-apply/next step
+   __git_eread $g/rebase-apply/last total
if [ -f $g/rebase-apply/rebasing ]; then
-   eread $g/rebase-apply/head-name b
+   __git_eread $g/rebase-apply/head-name b
r=|REBASE
elif [ -f $g/rebase-apply/applying ]; then
r=|AM
@@ -376,7 +376,7 @@ __git_ps1 ()
b=$(git symbolic-ref HEAD 2/dev/null)
else
local head=
-   if ! eread $g/HEAD head; then
+   if ! __git_eread $g/HEAD head; then
if [ $pcmode = yes ]; then
PS1=$ps1pc_start$ps1pc_end
fi
-- 
1.9.3+fc1

--
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 v1 1/2] Remove 'git archimport'

2014-05-13 Thread Felipe Contreras
Martin Langhoff wrote:
 On Thu, May 8, 2014 at 9:33 PM, Felipe Contreras
 felipe.contre...@gmail.com wrote:
  No updates since 2010, and no tests.
 
 NAK.
 
 IMHO, this is quite unfriendly.
 
 Is this removal based on your opinion, or Junio's position (or
 consensus from maintainers from the list)? If there is a clear
 consensus or direction for old code such as this, please let me know
 (but copy martin.langh...@gmail.com, not just my very old address!).

This tool doesn't even work anyway. Why do we want to distribute code
that doesn't work?

-- 
Felipe Contreras
--
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: Error using git-remote-hg

2014-05-13 Thread Felipe Contreras
Junio C Hamano wrote:

 It is time to catch regressions by asking wider audiences who do not
 normally follow Git development (i.e. those who are not the ones that
 follow 'master' and rebuild/install it once or twice a week for their
 daily use).

And you have one of those regressions in Git v2.0.

 My understanding is that versions of remote-hg shipped with all
 versions of Git did not work with Hg 3.0, so 58aee08 is not a
 regression fix at all.  Is working with Hg 3.0 at such a high priority
 that it makes it worth to slip the whole release schedule by a few
 weeks?  I do not think so.

It is in the contrib/ area, you don't need to slip the schedule for
something that is not part of the core.

Moreover, it *CANNOT POSSIBLY INTRODUCE REGRESSIONS*. I bet my
reputation on that.

Some time ago I asked you to trust my judgement and introduce changes
late into a release, and I told you there wouldn't be any problems, and
to trust me. If any problems arise I wouldn't be asking for something
like that again.

Well, I was right, there were no problems. And I'm right this time too,
there would be no issues.

But you don't care about reality and facts. You don't care about the
intent behind the release-candidates rule, you would rather follow the
rule blindly.

 Regarding the commit in question, I asked Felipe a question and
 never got a straight answer.

Nor will you get one, because thanks to your stupid decision for which
you still haven't provided a rationale, the git-remote-hg and
git-remote-hg are no longer maintained in git.git.

If you hadn't made such a move, you would have your answer, the fix
would be properly explained, the regression fixed, and all your users
would be happy that git-remote-hg and git-remote-bzr get distributed by
default.

-- 
Felipe Contreras
--
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 v1 1/2] Remove 'git archimport'

2014-05-13 Thread Felipe Contreras
Martin Langhoff wrote:
 On Tue, May 13, 2014 at 2:05 PM, Felipe Contreras
 felipe.contre...@gmail.com wrote:
  This tool doesn't even work anyway.
 
 It doesn't? Bug report / more info please?

Show me that it does. The documentation is lacking, and there's no tests
at all.

So it's hard to say is anybody supposed to use this and verify that it
works, but I ran this from Jeff:

  tla register-archive http://www.atai.org/archarchives/a...@atai.org--public/
  tla my-default-archive a...@atai.org--public
  mkdir repo
  cd repo
  git archimport a...@atai.org--public

And the command threw hundreds of errors and the result seemed to miss
tons of commits.

Does it work?

-- 
Felipe Contreras
--
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 01/17] contrib: remove outdated README

2014-05-13 Thread Felipe Contreras
Junio C Hamano wrote:
 Martin Langhoff martin.langh...@gmail.com writes:
 
  On Fri, May 9, 2014 at 5:54 PM, Felipe Contreras
  felipe.contre...@gmail.com wrote:
  You are once more twisting the sequence of events.
 
  Found this gem looking for background to the proposed removal to code of 
  mine.
 
  Felipe, if you are wanting to have a war of words with Junio, go have
  it, with him.
 
 Please don't feed the troll.  I was happy to be done with it.

I was going to let this comment go (as I let the endless stream of
ad hominem attacks go), but this just one ridiculous.

I've contributed 400 patches, changed 12700 lines, sent 4200 mails on
the list. Then I'm not happy with a decision you made, and I ask you
*one* question to clarify your rationale, and I'm still waiting for an
answer.

I think after this insane amount of work I'm entitled to an answer for
this *one* question.

Instead you passive aggressively label me as a troll?

This is really disquieting.

Junio, do you honestly think I am a troll? Have at least the decency of
telling it to me.

-- 
Felipe Contreras
--
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: Error using git-remote-hg

2014-05-13 Thread Felipe Contreras
William Giokas wrote:
 On Tue, May 13, 2014 at 10:30:26AM -0700, Junio C Hamano wrote:

  Why do we import changegroup unconditionally, even though it
  is only used in the new codepath meant only for version 3.0 or
  higher, not inside the if block that decides if we need that
  module? 

 changegroup is prefectly /okay/ to import unconditionally, though as you
 say it will never be used.

As you say, it's perfectly OK.

 We can also be even more explicit with what we import by doing something
 like::
 
   try:
   from mercurial.changegroup import getbundle
 
   except ImportError:
   def getbundle(__empty__, **kwargs):
   return repo.getbundle(**kwargs)

We could try that, but that would assume we want to maintain getbundle()
for the long run, and I personally don't want to do that. I would rather
contact the Mercurial developers about ways in which the push() method
can be improved so we don't need to have our own version. Hopefully
after it's improved we wouldn't have to call getbundle().

Moreover, eventually there will be a Mercurial 4.0, even 5.0, and at
some point we would want to remove the hacks for older versions. When we
do so we would want the import to remain unconditionally, and remove the
'check_version(3, 0)' which is already helping to explain what the code
is for without the need of comments.

 I was really sad to see that, and didn't have time to really look at it
 because of work and other projects, but I hope this presents a better
 solution than the current patch.

Either way Junio doesn't maintain this code, I do. And it's not
maintained in git.git, git's maintained out-of-tree (thanks to Junio's
decisions).

So please post your suggestions and patches to git...@googlegroups.com,
and use the latest code at https://github.com/felipec/git-remote-hg.

Cheers.

-- 
Felipe Contreras
--
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: Error using git-remote-hg

2014-05-13 Thread Felipe Contreras
William Giokas wrote:
 On Tue, May 13, 2014 at 02:09:55PM -0500, Felipe Contreras wrote:
  William Giokas wrote:
   On Tue, May 13, 2014 at 10:30:26AM -0700, Junio C Hamano wrote:
  
Why do we import changegroup unconditionally, even though it
is only used in the new codepath meant only for version 3.0 or
higher, not inside the if block that decides if we need that
module? 
  
   changegroup is prefectly /okay/ to import unconditionally, though as you
   say it will never be used.
  
  As you say, it's perfectly OK.
 
 But wrong. Yes, it works, but it's not how it should be done when we
 have a code review such as this. It should simply not be done and makes
 no sense to do with an 'if check ver; else' kind of thing later in the
 application.

That's exactly how it should be done. Maybe this visualization helps

  from mercurial import hg, ui, bookmarks, ...# for hg = 3.0
  from mercurial import node, error, extensions, ...  # for hg = 3.0
  from mercurial import changegroup   # for hg = 3.0

  if check_version(3, 0):
  cg = changegroup.getbundle(repo, 'push', ...# for hg = 3.0
  else:
  cg = repo.getbundle('push', heads=list(p_revs)  # for hg  3.0

Eventually the code would become:

  from mercurial import hg, ui, bookmarks, ...# for hg = 3.0
  from mercurial import node, error, extensions, ...  # for hg = 3.0
  from mercurial import changegroup   # for hg = 3.0

  cg = changegroup.getbundle(repo, 'push', ...# for hg = 3.0

The fact that at some point 'import changegroup' was not needed is
irrelevant.

Primarily we want to support the current version of Mercurial.
Secondarily we want to support older versions. That's why we add the
repo.getbundle() code (ass an addendum to the core part).

   We can also be even more explicit with what we import by doing something
   like::
   
 try:
 from mercurial.changegroup import getbundle
   
 except ImportError:
 def getbundle(__empty__, **kwargs):
 return repo.getbundle(**kwargs)
  
  We could try that, but that would assume we want to maintain getbundle()
  for the long run, and I personally don't want to do that. I would rather
  contact the Mercurial developers about ways in which the push() method
  can be improved so we don't need to have our own version. Hopefully
  after it's improved we wouldn't have to call getbundle().
 
 Assuming that mercurial 3.0 will not change, then this should never
 need to change.

But it should. Otherwise the code will keep having more and more hacks
and it will become less and less maintainable.

That's why we don't have code for hg 1.0; because it would require too
many hacks, and nobody cared anyway.

Just like nobody cares about hg 1.0, eventually nobody will care about
hg 2.0.

 Changes in 'getbundle' upstream would require changes either way.

I doubt we will see any more changes in getbundle, at least not until
4.0, and hopefully by then we wouldn't be using it anyway. I am willing
 to bet we won't see those changes.

  Moreover, eventually there will be a Mercurial 4.0, even 5.0, and at
  some point we would want to remove the hacks for older versions. When we
  do so we would want the import to remain unconditionally, and remove the
  'check_version(3, 0)' which is already helping to explain what the code
  is for without the need of comments.
 
 The same exact thing can be done with this. In fact, it would probably
 allow us to have better future-proofing with regards to new versions of
 mercurial, there would just be different try:except statements at the
 beginning.

No, your code doesn't show that this is for versiosn = 3.0,
'check_version(3, 0)' does.

Plus, when we remove this code my version makes it straight forward:

-if check_version(3, 0):
-cg = changegroup.getbundle(repo, 'push', ...
-else:
-cg = repo.getbundle('push', heads=list(p_revs), ...
+cg = changegroup.getbundle(repo, 'push', ...

Not so with your code:

-
-try:
-from mercurial.changegroup import getbundle
-
-except ImportError:
-def getbundle(__empty__, **kwargs):
-return repo.getbundle(**kwargs)
+from mercurial import getbundle
 
 import re
 import sys
@@ -1036,7 +1030,7 @@ def push_unsafe(repo, remote, ...
 if not checkheads(repo, remote, p_revs):
 return None
 
-cg = getbundle(repo, 'push', heads=list(p_revs), ...
+cg = changegroup.getbundle(repo, 'push', ...


   I was really sad to see that, and didn't have time to really look at it
   because of work and other projects, but I hope this presents a better
   solution than the current patch.
  
  Either way Junio doesn't maintain this code, I do. And it's not
  maintained in git.git, git's maintained out-of-tree (thanks to Junio's
  decisions).
 
 I still see it in git.git, and I will contribute this upstream for as
 long as it is in the tree.

And what happens when it's eventually removed?

 If you

Re: [PATCH] remote-hg: getbundle changed in mercurial 3.0

2014-05-13 Thread Felipe Contreras
Junio C Hamano wrote:

 The way I envision the longer term shape of git-remote-hg.py in the
 contrib/ is either one of these two:
 
  (1) manage it just like contrib/hooks/multimail/, keeping a
  reasonably fresh and known-to-be-good snapshot, while making it
  clear that my tree is not the authoritative copy people should
  work off of;
 
  (2) treat it just like contrib/emacs/vc-git.el, which found a
  better home and left my tree at 78513869 (emacs: Remove the no
  longer maintained vc-git package., 2009-02-07); or
 
 The first one may be more preferrable between the two, if only because
 distros would need time to adjust where they pick up the source
 material to package up, but it still needs cooperation with the
 authoritative upstream and this project to allow us to at least
 learn when the good time to import such good snapshots.

I will not do that.

If you want my help to improve *your* tree, you have to start by
answering the *one* question I've repeatedly asked you to clarify.

In fact if you go for this I would consider it an act of sabotage
against these new projects.

If you hadn't made me waste all this time chasing a non-attainable goal,
these projects would already be packaged by distributions, instead of
hidden in some corner of /usr/share.

Distributions wouldn't even be aware of the move, and it might take bug
reports to make them realize that. There will be already enough damage
to the reputation of these tools with Git v2.0 shipping them broken.

Not aligned at all with your previous statement that you wanted these to
flourisn.

In fact, I think you should remove them already from v2.0. Because this
doesn't need release candidates. Unless you think user feedback will
make you change your mind about not graduating them, moving them in 2.0,
or 2.1 will be the same, since you are going to ignore the feedback
anyway.

This also has the advantage that you won't be shipping them broken in
v2.0.

At the very least there should be a big fat message warning each time
the tools are run, warning the users that they are unmaintained, and the
right location for them. And yes, I also think this should be done for
v2.0.

-- 
Felipe Contreras
--
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] contrib: remote-helpers: add move warnings (v2.0)

2014-05-13 Thread Felipe Contreras
The tools are now maintained out-of-tree, and they have a regression in
v2.0. It's better to start warning the users as soon as possible.

Can't possibly introduce regressions.

Signed-off-by: Felipe Contreras felipe.contre...@gmail.com
---
 contrib/remote-helpers/git-remote-bzr | 3 +++
 contrib/remote-helpers/git-remote-hg  | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/contrib/remote-helpers/git-remote-bzr 
b/contrib/remote-helpers/git-remote-bzr
index 9abb58e..be4b9a3 100755
--- a/contrib/remote-helpers/git-remote-bzr
+++ b/contrib/remote-helpers/git-remote-bzr
@@ -43,6 +43,9 @@ import re
 import StringIO
 import atexit, shutil, hashlib, urlparse, subprocess
 
+sys.stderr.write('WARNING: git-remote-bzr is now maintained independently.\n')
+sys.stderr.write('WARNING: For more information visit 
https://github.com/felipec/git-remote-bzr\n')
+
 NAME_RE = re.compile('^([^]+)')
 AUTHOR_RE = re.compile('^([^]+?)? ?[]([^]*)(?:$|)')
 EMAIL_RE = re.compile(r'([^ \t]+@[^ \t]+)')
diff --git a/contrib/remote-helpers/git-remote-hg 
b/contrib/remote-helpers/git-remote-hg
index 34cda02..989df66 100755
--- a/contrib/remote-helpers/git-remote-hg
+++ b/contrib/remote-helpers/git-remote-hg
@@ -25,6 +25,9 @@ import atexit
 import urlparse, hashlib
 import time as ptime
 
+sys.stderr.write('WARNING: git-remote-hg is now maintained independently.\n')
+sys.stderr.write('WARNING: For more information visit 
https://github.com/felipec/git-remote-hg\n')
+
 #
 # If you want to see Mercurial revisions as Git commit notes:
 # git config core.notesRef refs/notes/hg
-- 
1.9.2

--
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: Error using git-remote-hg

2014-05-13 Thread Felipe Contreras
William Giokas wrote:
 On Tue, May 13, 2014 at 03:24:51PM -0500, Felipe Contreras wrote:
  William Giokas wrote:
   On Tue, May 13, 2014 at 02:09:55PM -0500, Felipe Contreras wrote:
As you say, it's perfectly OK.
   
   But wrong. Yes, it works, but it's not how it should be done when we
   have a code review such as this. It should simply not be done and makes
   no sense to do with an 'if check ver; else' kind of thing later in the
   application.
  
  That's exactly how it should be done. Maybe this visualization helps
  
from mercurial import hg, ui, bookmarks, ...# for hg = 3.0
from mercurial import node, error, extensions, ...  # for hg = 3.0
from mercurial import changegroup   # for hg = 3.0
  
if check_version(3, 0):
cg = changegroup.getbundle(repo, 'push', ...# for hg = 3.0
else:
cg = repo.getbundle('push', heads=list(p_revs)  # for hg  3.0
  
  Eventually the code would become:
  
from mercurial import hg, ui, bookmarks, ...# for hg = 3.0
from mercurial import node, error, extensions, ...  # for hg = 3.0
from mercurial import changegroup   # for hg = 3.0
  
cg = changegroup.getbundle(repo, 'push', ...# for hg = 3.0
 
 No, the way that it's going to change is that the import statements will
 change, not the 'if:else' things. It would work exactly the same with
 this, however the things that are used only in a specific version for
 this are stated up front. Maybe this visualization helps for what I have
 set up::
 
   from mercurial import ...# for all hg
   
   try:
   from mercurial.changegroup import getbundle  # for hg with
# changegroup.getbundle,
# regardless of version

This would make sense if in our eyse all versions of Mercurial were
the same, and we would want the code to work optimally for all of them
forever.

But that's not the case. The current version of Mercurial is more
important, the fact that we have one unnecessary import in older
versions is not of consequence because eventually the won't be
supported.

 When we eventually remove support for mercurial that uses
 repo.getbundle:
 
   from mercurial import changegroup, ...   # for all hg
   ...
   cg = changegroup.getbundle(...)

And the diff from my version to the final version is smaller.

  The fact that at some point 'import changegroup' was not needed is
  irrelevant.
  
  Primarily we want to support the current version of Mercurial.
  Secondarily we want to support older versions. That's why we add the
  repo.getbundle() code (as an addendum to the core part).
 
 So I use arch myself, and I am very used to the 'rolling release' model
 that it employs. I do agree that we should concentrate support for the
 latest release, but for a project like git the other versions of hg
 cannot be ignored, as this project is used on so many different systems.

Older versions are not ignored, they are supported. It's just not worth
tainting the code to avoid an 'import'.

We could try that, but that would assume we want to maintain getbundle()
for the long run, and I personally don't want to do that. I would rather
contact the Mercurial developers about ways in which the push() method
can be improved so we don't need to have our own version. Hopefully
after it's improved we wouldn't have to call getbundle().
   
   Assuming that mercurial 3.0 will not change, then this should never
   need to change.
  
  But it should. Otherwise the code will keep having more and more hacks
  and it will become less and less maintainable.
  
  That's why we don't have code for hg 1.0; because it would require too
  many hacks, and nobody cared anyway.
  
  Just like nobody cares about hg 1.0, eventually nobody will care about
  hg 2.0.
 
 Yes, it can change. Eventually hg 2.0 will be defunct and no one will
 use it, but what happens if they go back to the old 2.0 style for
 getbundle in hg 4.0?

Then you can tell me I was wrong and we go back to your version. But
that's not going to happen.

And even if it does, we still would need to fix the code.

 We're already good. What if they switch it back in
 4.1? This works for all of those conditions, and doesn't do anything if
 we're able to get mercurial.changegroup.getbundle.

Every method can change, we can't have wrappers for all of them.

In reality few of them do. And we deal with them on a case by case
basis.

There's no need to worry about the unlikely, especially since there
isn't much difference between the likely and unlikely; we are still
going to need to fix the code.
 
   Changes in 'getbundle' upstream would require changes either way.
  
  I doubt we will see any more changes in getbundle, at least not until
  4.0, and hopefully by then we wouldn't be using it anyway. I am willing
   to bet we won't see those changes

Re: [PATCH] contrib: remote-helpers: add move warnings (v2.0)

2014-05-13 Thread Felipe Contreras
Junio C Hamano wrote:
 Felipe Contreras felipe.contre...@gmail.com writes:
 
  The tools are now maintained out-of-tree, and they have a regression in
  v2.0.
 
 You seem not to understand at all what a regression is.
 
 My understanding is that versions of remote-hg shipped with all
 versions of Git did not work with Hg 3.0, so not working with Hg 3.0
 is a regression in v2.0 at all.

I explained to you multiple times already that is a different issue, but
it somehow doesn't get through your skull.

Let me try a different approach.

git-remote-bzr has a regression in Git v2.0.

Did you get the BAZAAR part? That's right, this is unrelated to
Mercurial v3.0 because it doesn't have anything to do with Mercurial.

*BOTH* git-remote-hg and git-remote-bzr have a regression in Git v2.0.

 A recent report was about Hg 3.0 not working with 1.9.3, but I think
 you earlier said all versions of Git does not work with Hg 3.0, and I
 can believe it.  That is hardly a regression.
 
 You could argue that Hg has a new regression to its external users
 of its API when it went to 3.0.  We actually had a similar breakage
 in 1.5.4, where it was reported late in the cycle after -rc0 [*1*]
 that cgit that linked with our internal API libgit.a was broken by a
 change on our side, which resulted in us fixing the breakage (even
 though technically you may be able to say that it was cgit's fault
 to link with libgit.a in the first place) with 18125644 (Move
 sha1_file_to_archive into libgit, 2008-01-14) very late in the
 cycle.  Calling that a regression in cgit would have been insane,
 even if we did not patch our side up to accomodate it.
 
 Stop this idiocy.

Sigh, you just don't seem to understand that you are thinking about a
different issue. I don't think there's any other way I can explain it to
you.

-- 
Felipe Contreras
--
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 01/17] contrib: remove outdated README

2014-05-13 Thread Felipe Contreras
Martin Langhoff wrote:

 I have had patches and contributions rejected in the past, sometimes
 rudely. Same has happened to many others, if you contribute long
 enough, it is pretty much guaranteed that it will happen to you.
 Maintainer is wrong, or you are wrong, or someone is just having a bad
 day.

This is not about a couple of patches I worked in a weekend being
rejected. This is about the work I've been doing since the past two
years almost like a full-time job dropped to the floor with no
explanation at all. I started with the expectation that they were going
to move to the core, because Junio said so, then he changed his mind and
didn't want to explain his reasoning.

It's not just a bad day.

-- 
Felipe Contreras
--
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] contrib: remote-helpers: add move warnings (v2.0)

2014-05-13 Thread Felipe Contreras
Junio C Hamano wrote:
 Felipe Contreras felipe.contre...@gmail.com writes:
 
  Sigh, you just don't seem to understand that you are thinking about a
  different issue. I don't think there's any other way I can explain it to
  you.
 
 Perhaps pointing out which commit(s) to revert might be a good point
 to start.

Oh, now you realize it might be nice to avoid this regression I warned
you about.

Why don't you continue schooling me about what constitutes a regression?
I'm such a slow learner.

I was going to do more than pointing to commits, I was going to provide
the fixes with test cases and a detailed explanation. But then you made
your decision.

This patch is what I'm suggesting you to do now. And I'll repeat what I
already told you.

Good luck with your tree.

-- 
Felipe Contreras
--
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 01/17] contrib: remove outdated README

2014-05-13 Thread Felipe Contreras
Junio C Hamano wrote:
 Felipe Contreras felipe.contre...@gmail.com writes:
 
  Junio, do you honestly think I am a troll?
 
 You certainly are acting like one, aren't you?

I'm deeply offended by the fact that would think that I'm purposely
intent on provoking people, or disrupting more important discussions.

I understand how my style of communication can upset people, mainly
because people are not used to frankness. But I thought you of all
people would see how much effort I've put into so many areas of Git, and
therefore that my primary objective is to improve Git, not offend
people. That you would understand that me offending people is a
side-effect of me trying to improve Git, not that I improve Git just so
I can offend people.

I understand why you would choose not to reply to some mails that might
be too flammable, or unimportant, or difficult. But in this case, the
culmination of countless hours of work, what I had in mind since the
beginning; that the tools graduate into the core, was finally there, and
you took it away. And then you didn't give an explanation, and then you
ignored me.

I thought you would understand that most of the code that arrived to the
mailing list had different versions behind, experiments, discussion in
different channels, tests, and that was the reason why most of the code
I submitted to remote-hg and remote-bzr simply worked, and it was
simple. And why when other people did the same, the results were not so
satisfactory.

But no, apparently you didn't value my work at all. Maybe you thought
each line I sent took me the time it takes to write a tweet, maybe you
thought because it's in Python even kids in primary school could write
it.

In fact it's worth so little to you that it's not even worth the time to
respond *one* question, not even in consideration of all these years of
effort.

And then you have the nerve to call me a troll on top of that?

I'm done with you. Consider the bridge burned.

Good bye.

-- 
Felipe Contreras
--
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] contrib: remote-helpers: add move warnings (v2.0)

2014-05-13 Thread Felipe Contreras
Ronnie Sahlberg wrote:
 Could you please calm down and adjust your behavior.  This constant
 hostility and rudeness makes the mailing list very unpleasant.

I explaind that to him multiple times. In the mail I replied to he is
once again assuming I'm a *insert-your-favorite-non-smart-adjective*,
and explaining to me what a regression is.

How many times must one repeat something before one is entitled so thay
something is not getting through the skull of another person? 5? 10?
20?

But fine, let's assume I do have to adjust my behavior. Maybe I should
have said it doesn't register in your brain, or just it fails to grab
your attention.

But if I have to adjust for saying that (which was true), what do you
say to Junio for saying this? (which was not)

  Stop this idiocy.

I presume nothing, because Junio is a riskier target.

-- 
Felipe Contreras
--
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: Should git-remote-hg/bzr be part of the core?

2014-05-12 Thread Felipe Contreras
Linus Torvalds wrote:
 On May 12, 2014 8:35 AM, Felipe Contreras felipe.contre...@gmail.com
 wrote:
 
  This move is already
  under way, but suddenly Junio changed his mind.
 
 That suddenly wouldn't have anything to do with you being an ass and
 difficult as usual, arguing about everything and just generally being
 contrary?

No, here's where the thread started (A):
http://thread.gmane.org/gmane.comp.version-control.git/247660/focus=248167

Here I wasn't being an ass:
http://thread.gmane.org/gmane.comp.version-control.git/247660/focus=248186

Here I wasn't being an ass either:
http://thread.gmane.org/gmane.comp.version-control.git/247660/focus=248171

Neither here:
http://thread.gmane.org/gmane.comp.version-control.git/247660/focus=248146

Nor here:
http://thread.gmane.org/gmane.comp.version-control.git/247660/focus=248195

Nor here:
http://thread.gmane.org/gmane.comp.version-control.git/247660/focus=248205

Not an ass here:
http://thread.gmane.org/gmane.comp.version-control.git/247660/focus=248213

And not here either:
http://thread.gmane.org/gmane.comp.version-control.git/247660/focus=248236

Then Junio *suddenly* changed his mind (B):
http://thread.gmane.org/gmane.comp.version-control.git/247660/focus=248242

That is the sequence of mails (A..B) where I responded, and I wasn't an
ass in eithe one of those, so whatever made Junio change his mind
happened in that interum, and it wasn't me being an ass.

I bet you made that statement without even botherting to read the
thread. Go on, read the thread, tell where exactly me being an ass
made Junio change his mind from A, to B.

Nah, you wouldn't do that, backing up your claims take time, and you are
not willing to spend time on this issue. Even if you were to try to back
up your claim, you couldn't, becasue it's not true. It's much easier to
just throw good sounding baseless claims and walk away.

 Felipe, stop this stupid blaming of everybody but yourself.

Show me evidence that this decision was my fault. Junio certainly hasn't
said so. You just have no idea what we are talking about.

 You make absolutely everything be this horrible disaster, you redefine
 words (regression) to be whatever you need/want them to be to be

git-remote-hg and git-remote-bzr will likely break in Git v2.0 in certain
situations where they wouldn't in v1.9, or v1.8. Call it whatever you
want. I call that a regression.

 Seriously. Don't try to make this about Junio somehow being the problem.

So Junio is perfect. Got it.

If you don't have the time to actually read the rationale behind Junio's
decision, how would you even know he made the right one? You are just
blindly assuming he is right, and therefore he is not the problem.

What if he was wrong? Nah, that's impossible. Right?

-- 
Felipe Contreras
--
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: Should git-remote-hg/bzr be part of the core?

2014-05-12 Thread Felipe Contreras
Felipe Contreras wrote:
 Linus Torvalds wrote:
  Felipe, stop this stupid blaming of everybody but yourself.
 
 Show me evidence that this decision was my fault. Junio certainly hasn't
 said so. You just have no idea what we are talking about.

Here, let me show you.

Junio, can you answer these questions?

 1) What is missing from git-remote-hg/bzr in order for them to be
considered to be merged to the core?

 2) If a different maintainer steps up, would you consider reconsider
merging them to the core?

 3) Is there any chance that in the future you would consider them after
they are more mature, and/or perhaps with a different maintainer?

Unless Junio changes his mind again, the answers to those questions
should be clear already to the people following the discussion
(i.e. not you).

-- 
Felipe Contreras
--
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: Should git-remote-hg/bzr be part of the core?

2014-05-12 Thread Felipe Contreras
Michael Haggerty wrote:
 On 05/12/2014 01:34 AM, Felipe Contreras wrote:
  Recently Junio said he was willing to hear the opinion of other people
  regarding the move from contrib to the core[1]. This move is already
  under way, but suddenly Junio changed his mind.
 
 I agree with Junio.  There are good technical arguments for and against
 moving git-remote-hg out of contrib.

Saying you agree with Junio is content-free. You have to say *why* you
agree.

You mention there are good technical arguments against the graduation of
the tools. Surely if you have analyzed those arguments enough to form an
opinion aligned with Junio's, it should be easy to provide a short
summary of those good technical arguments. Can you do that?

 1. That subproject has not been maintained to the standards of the Git
 project;

The quality of the subjproject has not been called into question, stop
taiting the discussion with red herrings.

 2. Moving git-remote-hg into the core would require even *more* of your
 presence on the Git mailing list.

That's not true. I sent my patches at my own pace, it doesn't matter if
they are in contrib or in the core, I would have kept sending them at
the same pace. I have addressed all issues and responded to all
questions as if they were already part of the core, which is why they
have more quality than other tools already in the core. I only stopped
doing that when Junio changed the direction we had since day one.

Also a red herring.

  [...] Does it make sense to you that
  you get thrown in jail for a crime you haven't committed merely because
  someone thinks it's likely you will?
 
 Being the leader of your own valuable open-source project is nothing
 like jail.  It is an opportunity for you to shine in an environment that
 is more suited to your personality.

Don't be ridiculous. There is no out-of-tree tool that could possibly
compete in popularity against core tools.

If you think being out-of-tree is not a negative, lets throw out
git-archimport, git-quiltimport, git-p4, git-cvs, git-svn. Let us give
them an opportunity to shine.

You know that those tools do better in the core, and you know
git-remote-hg/bzr would do better in the core. Don't act as if you
didn't.

 This email is written in sorrow, not in anger.  Felipe, you seem to have
 so much potential.  If you would put as much effort in conducting social
 interactions as you do in coding, the whole balance would change
 entirely, and any software project would be happy to have you.  With all
 my heart I truly wish you the best in your future endeavors.

Let's see how sincere you are in your sentiment. I'll reply to you
personally about the points that I consider to be red herrings and ad
hominem attacks so we don't taint the dicussion. If you don't reply I'll
know you were not being sincere.

Cheers.

-- 
Felipe Contreras
--
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: Should git-remote-hg/bzr be part of the core?

2014-05-12 Thread Felipe Contreras
Stefan Beller wrote:
 2014-05-12 10:12 GMT+02:00 Felipe Contreras felipe.contre...@gmail.com:
  Felipe Contreras wrote:
  Linus Torvalds wrote:
   Felipe, stop this stupid blaming of everybody but yourself.
 
  Show me evidence that this decision was my fault. Junio certainly hasn't
  said so. You just have no idea what we are talking about.
 
  Here, let me show you.
 
 I suspect Linus had a reason not to include the mailing lists
 in the first place

Huh?

He did include the mailing lists in the first place[1]. Either something
is wrong with the mailing list, or somebody is removing the mails.

You can see the full thread in the git-fc mailing list, and there you
can see the git ml is included in all the mails, including the one you
just sent, where you included the git ml, and it doesn't show in the
archives.

 and make a huge public discussion, but instead wrote to you
 personally.  I guess this is just Linus desire not to waste the time
 of everybody as he learned that these discussions are fruitless
 sometimes.

Don't you agree that including transparent bridges for Mercurial and
Bazaar distributed by default would be benefitial to the project?

If a discussion could potentially lead to them being included, I'd say
that wouldn't be fruitless, but it's *precisely* what our end users
would like us to be discussing right now.

 Junio C Hamano wrote [in another thread]:
  I would not mind asking the others, as your discussion tactic seems
  to be repeated voices start sounding like a chorus, and a chorus is
  project concensus.
 
  Those who are observing from the sideline, please raise your hand if
  you think the three-line Clarification Felipe gave us is a fair
  and accurate clarification.  Anybody?
 
  I also do not mind seeing hands raised of those who do not agree,
  even though I already know that they would be a silent majority.
 
 I think Junio is behaving very professional unlike you, Felipe.
 This includes being polite and very patient.

 Also this includes weighting different reasons to make
 informed rational decisions.

Where is he weighting the different reasons? I've asked him multiple
times to provide those reasons. He mensions there's one, but he doesn't
say which one it is.

If I haven't see this reason, how do you know he is weighing different
ones?

 Git being a project widely used and people trusting it for their
 work needs to have high quality and cannot go left today and
 go right tomorrow, but most of the decisions are done long-term.

Yes. What is right, and what is left in this example?

Presumably going right would be to include these tools in the core, but
that would imply that he plans to go left in the future. But he hasn't
said that. So what makes you think the project would go left in the
future?

 Felipe, this may be the reason, why you think nothing changes.
 It's just slower than you'd like, but with more thoughts weighted.

Really? I'll issue the same challenge I've issued to many people.

Name a single important change in Git (was one way before, it's another
way now) that has happened in the last 5 years. And by important I mean
for starters users noticed it.

You won't be able to, because nothing ever changes.

 Junio, I think you're doing an awesome job in maintaining Git
 and leading the community.

Maintaining, yes, but leading? Leading it where?

[1] https://groups.google.com/forum/#!original/git-fc/Clhss-fXS2k/9UtiilJ2WQ4J

-- 
Felipe Contreras
--
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: Should git-remote-hg/bzr be part of the core?

2014-05-12 Thread Felipe Contreras
Michael Haggerty wrote:
 On 05/12/2014 12:37 PM, Felipe Contreras wrote:
  Michael Haggerty wrote:
  On 05/12/2014 01:34 AM, Felipe Contreras wrote:
  Recently Junio said he was willing to hear the opinion of other people
  regarding the move from contrib to the core[1]. This move is already
  under way, but suddenly Junio changed his mind.
 
  I agree with Junio.  There are good technical arguments for and against
  moving git-remote-hg out of contrib.
  
  Saying you agree with Junio is content-free. You have to say *why* you
  agree.
 
 Actually, I don't have to,

Then there's no point in reading what else you have to say. Whatever
reasons you might have to agree with Junio are known only to you, thus
your agreement is opaque and meaningless.

  The quality of the subjproject has not been called into question, stop
  taiting the discussion with red herrings.
 
 On the contrary.  I just called the quality of the subproject into
 question, and I stated exactly which aspects of its quality I find to be
 inadequate in the text that you omitted from your response:

I'll wait until somebody else calls into question the quality.
Preferably somebody who backs up his claims with evidence.

 OK, maybe you are technically correct there.  There is indeed a
 difference between  and =.  Let me amend my claim:
 
 2. Moving git-remote-hg into the core would require you to continue your
presence on the Git mailing list.

That is another red herring. Moving them back to the contrib/ area which
is what Junio proposed would also require my presence on the list. Is
that what you want?

And there's the transport helper, and bash completion, and the zsh
completion.

  [...] Does it make sense to you that
  you get thrown in jail for a crime you haven't committed merely because
  someone thinks it's likely you will?
 
  Being the leader of your own valuable open-source project is nothing
  like jail.  It is an opportunity for you to shine in an environment that
  is more suited to your personality.
  
  Don't be ridiculous. There is no out-of-tree tool that could possibly
  compete in popularity against core tools.
 
 I never made that claim.  I claimed that it was nothing like jail, and
 I stand by that claim.

In the context of the Git project what is the *worst* thing the
maintainer can do to a piece of code but delete it? So I think you are
right, the jail analogy is not correct; it's *execution*.

  You know that those tools do better in the core, and you know
  git-remote-hg/bzr would do better in the core. Don't act as if you
  didn't.

 People who need to do a conversion from A to B only have to Google for
 A B and they will find the best conversion tools pretty easily.

Let's test that hypothesis:

Google: how to conver mercurial to git

 * Convert Mercurial project to Git - Stack Overflow (NOPE)
 * Converting a Mercurial repository to Git (YEAP: one among many)

Oh, but would you look at that:

  This script will actually be shipping with git at some point, which
  gives it some credibility in my book.

 * frej/fast-export · GitHub (NOPE)
 * Hg-Git Mercurial Plugin (NOPE)
 * Converting Hg repositories to Git (NOPE)
 * Converting from Mercurial to Git - Hivelogic (NOPE)
 * Converting Repositories From Git to Mercurial (NOPE)
 * hg-fast-export: convert Mercurial repositories (NOPE)
 * Converting Mercurial (Hg) to Git Repository on Mac (NOPE)
 * Bitbucket: Converting Hg repositories to Git (NOPE)

So pretty much hypoethesis failed. That fact that you would even think
people would quickly find about git-remote-hg shows exactly how detached
you are from the problem.

 If the tools are packaged for their OS then they are just an apt-get
 install away from happiness.

Oh, they are packaged already (as part of Git). Moving them out-of-tree
will make it much more difficult for users to find them, and install
them. It will take time for them to be packaged, if it happens at all.

  Let's see how sincere you are in your sentiment. I'll reply to you
  personally about the points that I consider to be red herrings and ad
  hominem attacks so we don't taint the dicussion. If you don't reply I'll
  know you were not being sincere.
 
 Jumping at your every demand is not a prerequisite for being sincere.

I spent a lot of time writing that mail. Not sincere it is then.

-- 
Felipe Contreras--
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: Should git-remote-hg/bzr be part of the core?

2014-05-12 Thread Felipe Contreras
Paolo Ciarrocchi wrote:
 On Mon, May 12, 2014 at 11:42 AM, Michael Haggerty 
 mhag...@alum.mit.eduwrote:
 
  Felipe, you seem to have so much potential.  If you would put as
  much effort in conducting social interactions as you do in coding,
  the whole balance would change entirely, and any software project
  would be happy to have you.  With all my heart I truly wish you the
  best in your future endeavors.
 
 I really *love* this paragraph. Felipe, you are a brilliant developer
 and you put a lot of work trying to improve GIT.

Thanks.

 While I agree with you the this project is managed in a bit conservative
 way

Only a bit? I don't think I've been involed in a more conservative open
source project.

 you should really improve how you communicate with other developers,
 it's such a pity your contributions are some times not included in
 git.git just because of your attitude.

But that's a theory. You don't *know* that they would have been included
had I used a different attitude.

In fact, people have contacted me privately saying similar things, and
I'll give you the same challenge I gave them. If you think a different
attitude would get my patches in, how about *you* write the commit
messages and the discussions for one of my stuck patch series. I'll send
the mails as if I had written the content.

If you are right, the different attitude would make the patches land in
no time. I still think it's not right for patches to be rejected simply
because of attitude, but I would accept you were right.

But I think you already know that won't happen, the patches still won't
get in, not because of the attitude, but because of what they are trying
to do: change things.

So if I *know* certain feature would be useful for Git users, I've
listened to all the comments, and addressed all the problems, why would
I give up on those patches? Why would I work on something more boring
that won't benefit users as much but would have higher chances of
getting in?

I'm doing this on my own free time, I can choose to do whatever I want,
in whatever way I want, so no, I'll keep working on what I think is
important.

If you really think the patches can be accepted with a different
attitude, by all means, let's do the experiment and find out.

-- 
Felipe Contreras
--
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: Should git-remote-hg/bzr be part of the core?

2014-05-12 Thread Felipe Contreras
Paolo Ciarrocchi wrote:
 On Mon, May 12, 2014 at 2:48 PM, Felipe Contreras
 felipe.contre...@gmail.com wrote:
  Paolo Ciarrocchi wrote:
   On Mon, May 12, 2014 at 11:42 AM, Michael Haggerty 
   mhag...@alum.mit.eduwrote:
 
   While I agree with you the this project is managed in a bit conservative
   way
 
  Only a bit? I don't think I've been involed in a more conservative open
  source project.
 
   you should really improve how you communicate with other developers,
   it's such a pity your contributions are some times not included in
   git.git just because of your attitude.
 
  But that's a theory. You don't *know* that they would have been included
  had I used a different attitude.
 
 Well, you could at least try to act and communicate differently.

I have, it doesn't make a difference.

  In fact, people have contacted me privately saying similar things, and
  I'll give you the same challenge I gave them. If you think a different
  attitude would get my patches in, how about *you* write the commit
  messages and the discussions for one of my stuck patch series. I'll send
  the mails as if I had written the content.
 
 No, sorry but I'm NOT interested in lying to git community.

Yeah, that's what I thought. I know what the result of such experiment
would be though.

-- 
Felipe Contreras
--
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: Should git-remote-hg/bzr be part of the core?

2014-05-12 Thread Felipe Contreras
Michael Haggerty wrote:
 On 05/12/2014 02:29 PM, Felipe Contreras wrote:
  Michael Haggerty wrote:
  [...]
  2. Moving git-remote-hg into the core would require you to continue your
 presence on the Git mailing list.
  
  That is another red herring. Moving them back to the contrib/ area which
  is what Junio proposed would also require my presence on the list. Is
  that what you want?
 
 No, actually my preference is that git-remote-hg be separated from the
 Git project altogether, for the reasons that I stated earlier.

Exactly. So your point 2. is completely irrelevant to the contrb/ vs.
core debate.

-- 
Felipe Contreras
--
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: Error using git-remote-hg

2014-05-12 Thread Felipe Contreras
Torsten Bögershausen wrote:
  I'm using git 1.9.3 on Mac OS X 10.9.2, with hg 3.0 installed with brew.
  
  It used to work before, on this same repository, since then git and hg were 
  both upgraded.
 In short: The remote helper of Git 1.9.3 is not compatible with hg 3.0
 You can eiher downgrade hg, or rebuild Git and cherry-pick this commit:

No need to rebuild Git.

You can also use the latest version:
https://github.com/felipec/git-remote-hg

-- 
Felipe Contreras--
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/4] remote-hg: more improvements

2014-05-12 Thread Felipe Contreras
Junio C Hamano wrote:
 Philippe Vaucher philippe.vauc...@gmail.com writes:
 
  It is *way* beyond the quality of any other tool in 'contrib/' and even
  some tools in the core, like 'git-request-pull' (which has known bugs),
  and probably even 'git-pt'.
 
  Junio, can you comment on this? I understand this probably doesn't
  really affect the issue at hand, but it'd help clarify if it's ever
  possible to move out of contrib/ nowadays.
 
 I was originally led to believe that its code quality was good
 enough, and that was why I merged the bottom three patches of the
 series even down to 'next' in the first place.  But after seeing the
 Of course response that led to [*1*], which made me recall many
 patch-review interactions with him, I have started to have doubts.

This is bullshit, and a wrong direction fallacy.

Event #1:
Junio rejects the graduation
http://article.gmane.org/gmane.comp.version-control.git/248263

Event #2:
I give up improving remote helpers in git.git
http://thread.gmane.org/gmane.comp.version-control.git/248063/focus=248341

Junio is trying to make you believe that his decision (#1) was caused by
something I did (#2). Don't fall into that trap, #2 happened *AFTER* #1,
it can't possibly be the cause.

 But I would be lying if I said that I would expect
 that things will suddenly improve and that the codebase will be
 maintained for the long haul in a healthy way the minute we move it
 out of contrib/ to the core.  Especially after seeing [*1*]

[1] happened *AFTER* you made that stupid decision.

Don't make it look as if your decision was caused by [1], *YOU* caused
[1].

If you want to show that the quality of the commit messages or the code
caused that decision, show an issue in that respect that happened
*BEFORE* your decision.

It is very clear what is happening. Junio made a wrong decision based a
non-issue, then it became abudantly clear that there was no basis for
such decision, this why he never clarified the reasoning behind. Then,
*AFTER* I reacted to his decision he grabbed that opportunity to say
no, look, this _new_ thing Felipe is doing is the reason. Nice try.

If the behavior in [1] is the reason, the solution is easy; I'll revert
back to my old behavior where I explained everything in detail, and
updated the commit messages if something wasn't clear.

I would:

 1. Make sure the regression is fixed Git v2.0
 2. Send a clarified patch for the hg 3.0 compatibility
 3. Look for other important patches that might be missing and provide
all the details why they are important
 4. Rebase and clean the rest of the patches to make sure nothing is
missing

This is what I was going to do anyway *BEFORE* you made that decision.
And this commitment to quality is what I've been doing since day one.
*YOU* changed that by throwing away all my hard work.

If the issue was truly the behavior in [1], the outline above should get
rid of the (fake) problem you mention.

We make a compromise, you ignore this temporary bump (that *you*
caused), and I go back to high quality standards (which I was already
doing anyway before). The graduation process continues, and *IF* another
instance like [1] comes (it won't), then the graduation process is
canceled.

Ignoring temporary set-backs, finding common ground, and making an
agreement on future behavior is in the best interest of our users. Will
you do it?

 *1* http://thread.gmane.org/gmane.comp.version-control.git/248063/focus=248341

-- 
Felipe Contreras
--
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/4] remote-hg: more improvements

2014-05-12 Thread Felipe Contreras
Junio C Hamano wrote:
 Felipe Contreras felipe.contre...@gmail.com writes:
 
  Junio C Hamano wrote:
  ...
  I was originally led to believe that its code quality was good
  enough, and that was why I merged the bottom three patches of the
  series even down to 'next' in the first place.  But after seeing the
  Of course response that led to [*1*], which made me recall many
  patch-review interactions with him, I have started to have doubts.
 
  This is bullshit, and a wrong direction fallacy.
 
  Event #1:
  Junio rejects the graduation
  http://article.gmane.org/gmane.comp.version-control.git/248263
 
  Event #2:
  I give up improving remote helpers in git.git
  http://thread.gmane.org/gmane.comp.version-control.git/248063/focus=248341
 
  Junio is trying to make you believe that his decision (#1) was caused by
  something I did (#2). Don't fall into that trap, #2 happened *AFTER* #1,
  it can't possibly be the cause.
 
 I think you misunderstood.
 
 I never said that I do not want it to graduate up (out is an option)
 based on code quality.

Fair enough, that was my understanding up until today.

 But because I was asked, I thought about it, and then answered
 honestly.  I do not know what a trap you perceive is about, and I am
 not interested in your responses.

Philippe Vaucher didn't ask about quality, he asked about moving out of
contrib.

-- 
Felipe Contreras
--
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] inline constant return from error() function

2014-05-11 Thread Felipe Contreras
Junio C Hamano wrote:
 That's kind of W*A*T magic, and I generally try to avoid magic, as
 long as it solves your can we make both -O2 with new compilers and
 -O3 happy? I wouldn't complain ;-)

In case anybody is looking for a non-hacky way of doing this that
doesn't depend on the gcc version of the week, this is how I silenced
the warnings in git-fc:

https://github.com/felipec/git/commit/e14ca39ba0092f0305d5fb347e20b829f736b29b

-- 
Felipe Contreras
--
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: What's cooking in git.git (May 2014, #02; Fri, 9)

2014-05-11 Thread Felipe Contreras
Junio C Hamano wrote:
 Felipe Contreras felipe.contre...@gmail.com writes:
 
  Junio C Hamano wrote:
  * fc/remote-helpers-hg-bzr-graduation (2014-04-29) 11 commits
   - remote-hg: trivial cleanups
   - remote-hg: make sure we omit multiple heads
   - git-remote-hg: use internal clone's hgrc
   - t: remote-hg: split into setup test
   - remote-hg: properly detect missing contexts
   - remote-{hg,bzr}: store marks only on success
   - remote-hg: update to 'public' phase when pushing
   - remote-hg: fix parsing of custom committer
(merged to 'next' on 2014-04-22 at fed170a)
   + remote-helpers: move tests out of contrib
   + remote-helpers: move out of contrib
   + remote-helpers: squelch python import exceptions
  
   As there were announcements for these two to be maintained as
   independent third-party projects ($gmane/248561, $gmane/248583),
 
  Clarification: after Junio unlilaterally blocked any further progress
  towards grauduation to the core, which was the intention since the very
  beginning.
 
 After seeing your repeated attempts to spread misinformation, I was
 planning to totally ignore you, but because What's cooking is one
 of the important project-wide report, I'll respond one last time.
 
 Even though I was originally leaning towards moving them into core
 (after all, why would I have merged the bottom three commits to
 'next' otherwise?), I was later convinced, during the discussion
 that started with John Keeping's objection [*1*], that I was wrong,

Funny how you simply put a reference to the objection, and don't even
mention it, even though I asked you multiple times to state clearly what
was this argument that moved you so deeply. Even now the link you
posted is to this same thread, not John Keeping's objection.

Since you have failed to clarify, I'll make a guess and assume it's this
one[1]:

  I do not want to end up in a situation where an update to Git is
  blocked by a distribution because git-remote-hg is not updated to
  support newer versions of Mercurial sufficiently quickly; this
  previously happened in Gentoo due to git-svn and meant that was stuck
  on 1.7.8 until 1.7.13 was released [2].

First of all, John Keeping is not arguing that such situation *will*
arise, he is arguing that it *might*. Well, an asteriod *might* wipe all
humans on Earth tomorrow, should we all act like it *will* happen, throw
away all our money and run naked on the streets? No, we assess what is
the *likelihood* that such an event would happen.

That's what sane human beings do all the time; we try to calculate the
future using the past and logic as a reference. That's why you see most
people not check their chairs before sitting, they assume the chair
functions correctly, even it *might* be broken, and indeed sometimes
they are and they fall, but it happens so rarely that it doesn't make
sense to worry about.

But you are not like that, are you? To you is enough that something
*might* happen to act like it *will*. I told you the hypothetical event
that John Keeping was talking about would not happen, we have checks in
place to ensure that it doesn't[2].

And you don't use history as an indicator of the future; there hasn't
been *a single* change in git-remote-hg that was needed for newer
versions of Mercurial. The only one was extremely recent, and I didn't
catch it sooner because I wasn't testing for hg's development version,
which I am now.

Moreover, the reason of the failure was that I wrote my own custom
push() method, which relies on things too deep in the API, and those
things do change from time to time. To mitigate the possibility of that
happening I'm planning to contact the Mercurial developers to see how it
would be possible to change their API so I wouldn't need my custom
push() method in the future, and therefore if they change something
inside their push() method, that change wouldn't hit us.

But you are not interested in that are you? You are not interesed in how
likely is the event, nor on mitigation strategies, you only care that it
*might* happen, even though in reality it proably never *will*. Perhaps
you do check every chair before sitting.

Let's assume that it *will* happen (it won't), what is the worst case
scenario? The users of git-remote-hg might get some broken
functionality, but that would happen regardless if they are in the core,
contrib, or out-of-tree. 'make test' might break and prevent packages
and other people to build correctly. This is a real issue, however, it's
not impossible to solve (nothing is), and there's many ways to deal with
this:

 a) Distribute remote-hg tests separately. This is actually how my patch
series started: t/remote-helpers was separate from the other tests.
This way we can tell distributions that they shouldn't rely on these
tests passing always.
 b) Add a new test_expect_success_maybe. This way distributions can keep
running the tests, but if something fails the build wouldn't stop.
 c) Just remove all tests

Should git-remote-hg/bzr be part of the core?

2014-05-11 Thread Felipe Contreras
Hi,

Recently Junio said he was willing to hear the opinion of other people
regarding the move from contrib to the core[1]. This move is already
under way, but suddenly Junio changed his mind.

I have repeatedly asked him to clarify what argument changed his mind,
but he hasn't done so. Hopefully he will do that in this thread, but
I'll jump ahead and assume it's this one by John Keeping[2]:

  I do not want to end up in a situation where an update to Git is
  blocked by a distribution because git-remote-hg is not updated to
  support newer versions of Mercurial sufficiently quickly; this
  previously happened in Gentoo due to git-svn and meant that was stuck
  on 1.7.8 until 1.7.13 was released [X].

Now, I feel I addressed this argument at length, specially in this
thread [3], but I'll try to provide a summary of the strongest arguments
against:

 1) We can make the tests optional, say 't/optional'. So if they don't
pass, the build of Git is not broken. Additionally, distributions
might prefer to run test-essential if they don't want to run these
optional tests.
 
 2) There's already continuous integration builds[4] to make sure all
the possible incoming changes in Mercurial are detected early on.

 3) There has been a *single* case where a new Mercurial (3.0) broke
things. This is due to the fact of how I implemented certain
functionality due to limitations in Mercurial's API. Mercurial
authors can be contacted to improve the API and minimize the
possibility of it happening again.

Given these arguments, I don't see how moving git-remote-hg to the core
could possibly cause any problems, and I don't understand why Junio
would think otherwise. Even if such a breakage causes a problem to the
whole Git, it would make sense to demote these tools *when* such a
problem comes (which I argue it won't). Does it make sense to you that
you get thrown in jail for a crime you haven't committed merely because
someone thinks it's likely you will?

Given the huge amount of work I've put in these remote helpers, and the
fact that Junio said since day 1 he wanted these in the core[5] (and I
was operating under that assumption), I think the demotion back to the
contrib area (and therefore out-of-tree) should be made carefully, and
not from one day to he next as it happened.

Thoughts?

[1] http://article.gmane.org/gmane.comp.version-control.git/248676
[2] http://article.gmane.org/gmane.comp.version-control.git/248167
[3] http://article.gmane.org/gmane.comp.version-control.git/248683
[4] https://travis-ci.org/felipec/git
[5] http://article.gmane.org/gmane.comp.version-control.git/220277

-- 
Felipe Contreras
--
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: Summary of the problems with git pull

2014-05-10 Thread Felipe Contreras
Felipe Contreras wrote:
 == git update ==
 
 Another proposed solution is to have a new command: `git update`. This
 command would be similar to `git pull --ff-only` by default, but it
 could be configured to do merges instead, and when doing so in reverse.

And here it is:

https://github.com/felipec/git/commits/fc/update

Here's the documentation:

https://github.com/felipec/git/wiki/git-update

Works exactly as expected: non-fast-forwards are rejected by default,
but can be configured, and parents are reversed when merging.

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


  1   2   3   4   5   6   7   8   9   10   >