* [StGIT PATCH] Better diagnostic for wrong branch configuration.
@ 2007-10-05 20:44 Yann Dirson
2007-10-07 13:14 ` Karl Hasselström
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Yann Dirson @ 2007-10-05 20:44 UTC (permalink / raw)
To: Catalin Marinas; +Cc: git
If the branch.*.merge parameter does not name a valid remote head,
stgit would not rebase after a fetch, and would write instead
'Rebasing to "None" ... done'.
This patch makes this situation an error and tells the user what
to fix in his repo configuration.
---
stgit/commands/pull.py | 9 ++++++++-
stgit/git.py | 5 ++++-
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/stgit/commands/pull.py b/stgit/commands/pull.py
index 052ea2b..070db99 100644
--- a/stgit/commands/pull.py
+++ b/stgit/commands/pull.py
@@ -90,7 +90,14 @@ def func(parser, options, args):
elif policy == 'fetch-rebase':
out.info('Fetching from "%s"' % repository)
git.fetch(repository)
- rebase(git.fetch_head())
+ try:
+ target = git.fetch_head()
+ except git.GitException:
+ out.error('Could not find the remote head to rebase onto, pushing any patches back...')
+ post_rebase(applied, False, False)
+ raise CmdException, 'Could not find the remote head to rebase onto - fix branch.%s.merge in .git/config' % crt_series.get_name()
+
+ rebase(target)
elif policy == 'rebase':
rebase(crt_series.get_parent_branch())
diff --git a/stgit/git.py b/stgit/git.py
index 9e0f771..a0493bc 100644
--- a/stgit/git.py
+++ b/stgit/git.py
@@ -1003,11 +1003,14 @@ def fetch_head():
m = re.match('^([^\t]*)\t\t', line)
if m:
if fetch_head:
- raise GitException, "StGit does not support multiple FETCH_HEAD"
+ raise GitException, 'StGit does not support multiple FETCH_HEAD'
else:
fetch_head=m.group(1)
stream.close()
+ if not fetch_head:
+ raise GitException, 'No for-merge remote head found in FETCH_HEAD'
+
# here we are sure to have a single fetch_head
return fetch_head
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [StGIT PATCH] Better diagnostic for wrong branch configuration.
2007-10-05 20:44 [StGIT PATCH] Better diagnostic for wrong branch configuration Yann Dirson
@ 2007-10-07 13:14 ` Karl Hasselström
2007-10-07 14:17 ` Yann Dirson
2007-10-07 21:04 ` Catalin Marinas
2007-10-08 13:00 ` Catalin Marinas
2 siblings, 1 reply; 6+ messages in thread
From: Karl Hasselström @ 2007-10-07 13:14 UTC (permalink / raw)
To: Yann Dirson; +Cc: Catalin Marinas, git
On 2007-10-05 22:44:52 +0200, Yann Dirson wrote:
> If the branch.*.merge parameter does not name a valid remote head,
> stgit would not rebase after a fetch, and would write instead
> 'Rebasing to "None" ... done'.
>
> This patch makes this situation an error and tells the user what to
> fix in his repo configuration.
Good. Sign-off?
> - raise GitException, "StGit does not support multiple FETCH_HEAD"
> + raise GitException, 'StGit does not support multiple FETCH_HEAD'
Unrelated quote fixup. No big deal, though.
--
Karl Hasselström, kha@treskal.com
www.treskal.com/kalle
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [StGIT PATCH] Better diagnostic for wrong branch configuration.
2007-10-07 13:14 ` Karl Hasselström
@ 2007-10-07 14:17 ` Yann Dirson
2007-10-07 15:25 ` Karl Hasselström
0 siblings, 1 reply; 6+ messages in thread
From: Yann Dirson @ 2007-10-07 14:17 UTC (permalink / raw)
To: Karl Hasselström; +Cc: Catalin Marinas, git
On Sun, Oct 07, 2007 at 03:14:17PM +0200, Karl Hasselström wrote:
> On 2007-10-05 22:44:52 +0200, Yann Dirson wrote:
>
> > If the branch.*.merge parameter does not name a valid remote head,
> > stgit would not rebase after a fetch, and would write instead
> > 'Rebasing to "None" ... done'.
> >
> > This patch makes this situation an error and tells the user what to
> > fix in his repo configuration.
>
> Good. Sign-off?
Oops, sorry - "Signed-off-by: Yann Dirson <ydirson@altern.org>"
> > - raise GitException, "StGit does not support multiple FETCH_HEAD"
> > + raise GitException, 'StGit does not support multiple FETCH_HEAD'
>
> Unrelated quote fixup. No big deal, though.
Right - did not seem to warrant a patch of its own :)
Best regards,
--
Yann
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [StGIT PATCH] Better diagnostic for wrong branch configuration.
2007-10-07 14:17 ` Yann Dirson
@ 2007-10-07 15:25 ` Karl Hasselström
0 siblings, 0 replies; 6+ messages in thread
From: Karl Hasselström @ 2007-10-07 15:25 UTC (permalink / raw)
To: Yann Dirson; +Cc: Catalin Marinas, git
On 2007-10-07 16:17:44 +0200, Yann Dirson wrote:
> Oops, sorry - "Signed-off-by: Yann Dirson <ydirson@altern.org>"
Thanks; I'll include that when I push out my branches tonight.
--
Karl Hasselström, kha@treskal.com
www.treskal.com/kalle
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [StGIT PATCH] Better diagnostic for wrong branch configuration.
2007-10-05 20:44 [StGIT PATCH] Better diagnostic for wrong branch configuration Yann Dirson
2007-10-07 13:14 ` Karl Hasselström
@ 2007-10-07 21:04 ` Catalin Marinas
2007-10-08 13:00 ` Catalin Marinas
2 siblings, 0 replies; 6+ messages in thread
From: Catalin Marinas @ 2007-10-07 21:04 UTC (permalink / raw)
To: Yann Dirson; +Cc: git
On 05/10/2007, Yann Dirson <ydirson@altern.org> wrote:
> If the branch.*.merge parameter does not name a valid remote head,
> stgit would not rebase after a fetch, and would write instead
> 'Rebasing to "None" ... done'.
Applied, thanks. I'll try it tomorrow with my StGIT over SVN
configuration as well (it works OK with the latter patches).
--
Catalin
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [StGIT PATCH] Better diagnostic for wrong branch configuration.
2007-10-05 20:44 [StGIT PATCH] Better diagnostic for wrong branch configuration Yann Dirson
2007-10-07 13:14 ` Karl Hasselström
2007-10-07 21:04 ` Catalin Marinas
@ 2007-10-08 13:00 ` Catalin Marinas
2 siblings, 0 replies; 6+ messages in thread
From: Catalin Marinas @ 2007-10-08 13:00 UTC (permalink / raw)
To: Yann Dirson; +Cc: git
On 05/10/2007, Yann Dirson <ydirson@altern.org> wrote:
> --- a/stgit/git.py
> +++ b/stgit/git.py
> @@ -1003,11 +1003,14 @@ def fetch_head():
> m = re.match('^([^\t]*)\t\t', line)
> if m:
> if fetch_head:
> - raise GitException, "StGit does not support multiple FETCH_HEAD"
> + raise GitException, 'StGit does not support multiple FETCH_HEAD'
> else:
> fetch_head=m.group(1)
> stream.close()
>
> + if not fetch_head:
> + raise GitException, 'No for-merge remote head found in FETCH_HEAD'
OK, I tried and it doesn't work with my StGIT over SVN configuration.
What I did is defining 'pull-policy' as 'fetch-rebase', 'fetchcmd' as
'git svn fetch' which doesn't create any FETCH_HEAD. The 'pullcmd' is
defined as 'git svn rebase' and it doesn't use any argument if
git.fetch_head() return None.
I also think it is better for the pull command to re-raise the
git.fetch_head exception as this one contains more detailed
information about the error (after the out.error call). It currently
shows that the remote head couldn't be found but there is the multiple
heads case raised by git.fetch_head.
--
Catalin
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2007-10-08 13:01 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-05 20:44 [StGIT PATCH] Better diagnostic for wrong branch configuration Yann Dirson
2007-10-07 13:14 ` Karl Hasselström
2007-10-07 14:17 ` Yann Dirson
2007-10-07 15:25 ` Karl Hasselström
2007-10-07 21:04 ` Catalin Marinas
2007-10-08 13:00 ` Catalin Marinas
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).