threads / patch / 21692

v3gitk: add --no-replace-objects option

Subject: [PATCH v3] gitk: add --no-replace-objects option

## tl;dr

5 messages between Nov 20, 2009 and Nov 20, 2009. Diffs are folded; open one to read it.

replies: 4people: 2as markdown or json

Christian Couder· Nov 20, 2009, 19:40 UTC · lore

This option simply sets the GIT_NO_REPLACE_OBJECTS environment variable, and that is enough to make gitk ignore replace refs.

The GIT_NO_REPLACE_OBJECTS is set to "1" instead of "" as it is safer on some platforms, thanks to Johannes Sixt and Michael J Gruber.

Replace refs are useful to change some git objects after they have started to be shared between different repositories. One might want to ignore them to see the original state.

Tested-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
---
 gitk-git/gitk |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
Show changes to gitk-git/gitk +4 −1
diff --git a/gitk-git/gitk b/gitk-git/gitk
index a0214b7..c586b93 100644
--- a/gitk-git/gitk
+++ b/gitk-git/gitk
@@ -128,7 +128,7 @@ proc unmerged_files {files} {
 }
 
 proc parseviewargs {n arglist} {
-    global vdatemode vmergeonly vflags vdflags vrevs vfiltered vorigargs
+    global vdatemode vmergeonly vflags vdflags vrevs vfiltered vorigargs env
 
     set vdatemode($n) 0
     set vmergeonly($n) 0
@@ -208,6 +208,9 @@ proc parseviewargs {n arglist} {
 		# git rev-parse doesn't understand --merge
 		lappend revargs --gitk-symmetric-diff-marker MERGE_HEAD...HEAD
 	    }
+	    "--no-replace-objects" {
+		set env(GIT_NO_REPLACE_OBJECTS) "1"
+	    }
 	    "-*" {
 		# Other flag arguments including -<n>
 		if {[string is digit -strict [string range $arg 1 end]]} {
-- 
1.6.5.1.gaf97d
Junio C Hamano· Nov 20, 2009, 20:04 UTC · re: Christian Couder · lore

Re: [PATCH v3] gitk: add --no-replace-objects option

Christian Couder <chriscool@tuxfamily.org> writes:
> This option simply sets the GIT_NO_REPLACE_OBJECTS environment
> variable, and that is enough to make gitk ignore replace refs.

This is a much less interesting implementation detail than everything else you should talk about the new feature you are adding; why is it the first sentence of the message?

> The GIT_NO_REPLACE_OBJECTS is set to "1" instead of "" as it is
> safer on some platforms, thanks to Johannes Sixt and Michael J
> Gruber.
And this is even less interesting.
> Replace refs are useful to change some git objects after they
> have started to be shared between different repositories. One
> might want to ignore them to see the original state.

This is what the reader needs to see to understand why this patch is worthy of consideration. It is a minor offense that the paragraph does not end with "... original state, and --no-replace-objects option can be used from the command line to do so", but this could be excused if this is made the first paragraph in the message, close to the subject.

I wonder if this switch deserves run-time flippability, though...
Show 31 quoted lines
> Tested-by: Michael J Gruber <git@drmicha.warpmail.net>
> Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
> ---
>  gitk-git/gitk |    5 ++++-
>  1 files changed, 4 insertions(+), 1 deletions(-)
>
> diff --git a/gitk-git/gitk b/gitk-git/gitk
> index a0214b7..c586b93 100644
> --- a/gitk-git/gitk
> +++ b/gitk-git/gitk
> @@ -128,7 +128,7 @@ proc unmerged_files {files} {
>  }
>  
>  proc parseviewargs {n arglist} {
> -    global vdatemode vmergeonly vflags vdflags vrevs vfiltered vorigargs
> +    global vdatemode vmergeonly vflags vdflags vrevs vfiltered vorigargs env
>  
>      set vdatemode($n) 0
>      set vmergeonly($n) 0
> @@ -208,6 +208,9 @@ proc parseviewargs {n arglist} {
>  		# git rev-parse doesn't understand --merge
>  		lappend revargs --gitk-symmetric-diff-marker MERGE_HEAD...HEAD
>  	    }
> +	    "--no-replace-objects" {
> +		set env(GIT_NO_REPLACE_OBJECTS) "1"
> +	    }
>  	    "-*" {
>  		# Other flag arguments including -<n>
>  		if {[string is digit -strict [string range $arg 1 end]]} {
> -- 
> 1.6.5.1.gaf97d
Christian Couder· Nov 20, 2009, 20:42 UTC · re: Junio C Hamano · lore

Re: [PATCH v3] gitk: add --no-replace-objects option

On vendredi 20 novembre 2009, Junio C Hamano wrote:
Show 7 quoted lines
> Christian Couder <chriscool@tuxfamily.org> writes:
> > This option simply sets the GIT_NO_REPLACE_OBJECTS environment
> > variable, and that is enough to make gitk ignore replace refs.
>
> This is a much less interesting implementation detail than everything
> else you should talk about the new feature you are adding; why is it the
> first sentence of the message?

This patch was previously the second patch in a 2 patch series so the previous patch was already explaining some context. Perhaps I should have sent the first patch again with this one.

Show 15 quoted lines
> > The GIT_NO_REPLACE_OBJECTS is set to "1" instead of "" as it is
> > safer on some platforms, thanks to Johannes Sixt and Michael J
> > Gruber.
>
> And this is even less interesting.
>
> > Replace refs are useful to change some git objects after they
> > have started to be shared between different repositories. One
> > might want to ignore them to see the original state.
>
> This is what the reader needs to see to understand why this patch is
> worthy of consideration.  It is a minor offense that the paragraph does
> not end with "... original state, and --no-replace-objects option can be
> used from the command line to do so", but this could be excused if this
> is made the first paragraph in the message, close to the subject.
Ok, I will send the full series again with these changes.
> I wonder if this switch deserves run-time flippability, though...
The following patch in master added run-time flippability to many commands:
http://git.kernel.org/?p=git/git.git;a=commit;h=b0fa7ab51b29d34579d8f6bb4443dfbcb8278c7a

and Michael J Gruber wrote "we need a way to specify --no-replace-objects for gitk" in this message:

http://article.gmane.org/gmane.comp.version-control.git/132576/

Best regards, Christian.

Junio C Hamano· Nov 20, 2009, 20:55 UTC · re: Christian Couder · lore

Re: [PATCH v3] gitk: add --no-replace-objects option

Christian Couder <chriscool@tuxfamily.org> writes:
>> I wonder if this switch deserves run-time flippability, though...
>
> The following patch in master added run-time flippability to many commands:

What I meant was not that. I was wondering if the user wants to flip from the gitk GUI without restarting gitk.

Christian Couder· Nov 20, 2009, 21:15 UTC · re: Junio C Hamano · lore

Re: [PATCH v3] gitk: add --no-replace-objects option

On vendredi 20 novembre 2009, Junio C Hamano wrote:
Show 8 quoted lines
> Christian Couder <chriscool@tuxfamily.org> writes:
> >> I wonder if this switch deserves run-time flippability, though...
> >
> > The following patch in master added run-time flippability to many
> > commands:
>
> What I meant was not that.  I was wondering if the user wants to flip
> from the gitk GUI without restarting gitk.

Ah ok, yes this would be nice. But anyway I think the current patch is a first good step.

Thanks, Christian.

← back to recent threads