All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Waskiewicz Jr, Peter P" <peter.p.waskiewicz.jr@intel.com>
To: Zane Bitter <zbitter@redhat.com>
Cc: "git@vger.kernel.org" <git@vger.kernel.org>,
	"Keller, Jacob E" <jacob.e.keller@intel.com>,
	"catalin.marinas@gmail.com" <catalin.marinas@gmail.com>
Subject: Re: [StGit PATCH] Fix dirty index errors when resolving conflicts
Date: Wed, 17 Jul 2013 21:23:37 +0000	[thread overview]
Message-ID: <1374096215.9814.3.camel@ppwaskie-mobl2.jf.intel.com> (raw)
In-Reply-To: <20130717135454.16504.69116.stgit@zbitter.fedora>

On Wed, 2013-07-17 at 15:57 +0200, Zane Bitter wrote:
> The patch 6e8fdc58c786a45d7a63c5edf9c702f1874a7a19 causes StGit to raise
> "warnings" (actually: errors) in the event that there are changes staged in
> the index and a refresh is performed without specifying either --index or
> --force. This is great for preventing an entire class of common mistakes,
> but is also a giant pain when resolving conflicts after a pull/rebase.
> Depending on the workflow in use, this may occur with a frequency anywhere
> between "never" and "mulitple times on every pull".

I actually had someone else mention this problem to me last week.  This
looks good, I'll be applying this later today.

Cheers,
-PJ

> 
> This patch removes the pain by:
>  - Reporting unresolved conflicts *before* complaining about staged
>    changes, since it goes without saying that, when present, these are the
>    main problem.
>  - Not complaining about staged changes if there are no unstaged changes in
>    the working directory, since the presence of --index is immaterial in
>    this case.
> 
> Signed-off-by: Zane Bitter <zbitter@redhat.com>
> ---
>  stgit/commands/refresh.py |   13 +++++++------
>  1 file changed, 7 insertions(+), 6 deletions(-)
> 
> diff --git a/stgit/commands/refresh.py b/stgit/commands/refresh.py
> index a2bab42..331c18d 100644
> --- a/stgit/commands/refresh.py
> +++ b/stgit/commands/refresh.py
> @@ -247,18 +247,19 @@ def func(parser, options, args):
>      patch_name = get_patch(stack, options.patch)
>      paths = list_files(stack, patch_name, args, options.index, options.update)
>  
> -    # Make sure the index is clean before performing a full refresh
> -    if not options.index and not options.force:
> -        if not stack.repository.default_index.is_clean(stack.head):
> -            raise common.CmdException(
> -                'The index is dirty. Did you mean --index? To force a full refresh use --force.')
> -
>      # Make sure there are no conflicts in the files we want to
>      # refresh.
>      if stack.repository.default_index.conflicts() & paths:
>          raise common.CmdException(
>              'Cannot refresh -- resolve conflicts first')
>  
> +    # Make sure the index is clean before performing a full refresh
> +    if not options.index and not options.force:
> +        if not (stack.repository.default_index.is_clean(stack.head) or
> +                stack.repository.default_iw.worktree_clean()):
> +            raise common.CmdException(
> +                'The index is dirty. Did you mean --index? To force a full refresh use --force.')
> +
>      # Commit index to temp patch, and absorb it into the target patch.
>      retval, temp_name = make_temp_patch(
>          stack, patch_name, paths, temp_index = path_limiting)
> 


      parent reply	other threads:[~2013-07-17 21:23 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-17 13:57 [StGit PATCH] Fix dirty index errors when resolving conflicts Zane Bitter
2013-07-17 20:59 ` Keller, Jacob E
2013-07-17 21:23 ` Waskiewicz Jr, Peter P [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1374096215.9814.3.camel@ppwaskie-mobl2.jf.intel.com \
    --to=peter.p.waskiewicz.jr@intel.com \
    --cc=catalin.marinas@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=jacob.e.keller@intel.com \
    --cc=zbitter@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.