git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH/RFC] git-gui: disable (un)staging for files with typechange flags

From
Pat Thoyts <patthoyts@users.sourceforge.net>
Date
Dec 6, 2010, 21:48 UTC
Message-ID
<87aakiy3lt.fsf@fox.patthoyts.tk>
In-Reply-To
<50fc511f363e8b13b9b1a27db71136d262c95f0d.1291155371.git.bert.wesarg@googlemail.com>
Bert Wesarg <bert.wesarg@googlemail.com> writes:
Show 49 quoted lines
>This covers also the case for newly added files in the index. Like this:
>
>    echo bar >foo
>    git add foo
>    rm foo
>    ln -s bar foo
>
>This will result in an state of AT. And for cases where the type change is
>staged, and the new type was modified after the staging. Like this (cont.):
>
>    git add foo
>    git commit -mfoo
>    rm foo
>    echo bar >foo
>    git add foo
>    echo baz >foo
>
>Will result in an state of TM for foo.
>
>Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
>---
> git-gui.sh |    6 ++++--
> 1 files changed, 4 insertions(+), 2 deletions(-)
>
>diff --git a/git-gui.sh b/git-gui.sh
>index 38362fa..1bebcf1 100755
>--- a/git-gui.sh
>+++ b/git-gui.sh
>@@ -1993,7 +1993,9 @@ foreach i {
> 		{MD {mc "Staged for commit, missing"}}
> 
> 		{_T {mc "File type changed, not staged"}}
>+		{AT {mc "File type changed, old type staged for commit"}}
> 		{T_ {mc "File type changed, staged"}}
>+		{TM {mc "Staged file type change, modification not staged"}}
> 
> 		{_O {mc "Untracked, not staged"}}
> 		{A_ {mc "Staged for commit"}}
>@@ -3533,8 +3535,8 @@ proc popup_diff_menu {ctxm ctxmmg ctxmsm x y X Y} {
> 			|| $current_diff_path eq {}
> 			|| {__} eq $state
> 			|| {_O} eq $state
>-			|| {_T} eq $state
>-			|| {T_} eq $state
>+			|| [string match {?T} $state]
>+			|| [string match {T?} $state]
> 			|| [has_textconv $current_diff_path]} {
> 			set s disabled
> 		} else {

This seems fine. We do get a warning about an 'unhandled 2 way diff marker' when it bumps into the second 'diff --git a/foo b/foo' section but I'm not sure anything can be safely done about that.

-- 
Pat Thoyts                            http://www.patthoyts.tk/
PGP fingerprint 2C 6E 98 07 2C 59 C8 97  10 CE 11 E6 04 E0 B9 DD
Previous: Bert WesargNext: Bert Wesarg
Message 4 of 5 in “git-gui: disable (un)staging for files with typechange flags”
  1. git-gui: disable (un)staging for files with typechange flagsBert Wesarg, Nov 30, 2010
  2. Bert WesargDec 3, 2010
  3. Bert WesargDec 6, 2010
  4. Pat ThoytsDec 6, 2010
  5. Bert WesargDec 6, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.