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
Bert Wesarg <bert.wesarg@googlemail.com>
Date
Dec 6, 2010, 22:17 UTC
Message-ID
<AANLkTikTY-KsB6zgf0MZJDDr8dCMB1VUQh4pvrvgSLud@mail.gmail.com>
In-Reply-To
<87aakiy3lt.fsf@fox.patthoyts.tk>

On Mon, Dec 6, 2010 at 22:48, Pat Thoyts <patthoyts@users.sourceforge.net> wrote:

Show 55 quoted lines
> Bert Wesarg <bert.wesarg@googlemail.com> writes:
>
>>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.

We had this before, and you have proposed a fix for that ("git-gui: handle symlink replaced by file"). But as I wrote I have a better and nicer solution to that specific problem.

Bert
Show 5 quoted lines
> --
> 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: Pat Thoyts
Message 5 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.