git-bz.git
7 years agoAdd README master
Jared Camins-Esakov [Tue, 6 Nov 2012 20:46:26 +0000 (15:46 -0500)]
Add README

7 years agoTeach git-bz to optionally sign off when applying patches
Jared Camins-Esakov [Fri, 2 Nov 2012 12:00:17 +0000 (08:00 -0400)]
Teach git-bz to optionally sign off when applying patches

Adds a -s/--signoff option for the apply action. When set, git-bz
will instruct git-am to sign off on all patches as they are being
applied.

WARNING: THIS OPTION IS INTENDED FOR USE WHEN PUSHING BRANCHES. DO
NOT USE THIS OPTION AS AN ALTERNATIVE TO ACTUALLY TESTING CODE.

8 years agoMerge remote branch 'github-kc/master'
Jared Camins-Esakov [Wed, 26 Sep 2012 16:04:48 +0000 (12:04 -0400)]
Merge remote branch 'github-kc/master'

8 years agoadd support to email patch to 'koha-patches' mailing-list, using --mail arg
Mason James [Tue, 25 Sep 2012 12:33:50 +0000 (00:33 +1200)]
add support to email patch to 'koha-patches' mailing-list, using --mail arg

8 years agoTeach git-bz to understand 'a' for applying all patches
Jared Camins-Esakov [Wed, 1 Aug 2012 14:20:01 +0000 (10:20 -0400)]
Teach git-bz to understand 'a' for applying all patches

8 years agoTeach git-bz to update bug statuses
Jared Camins-Esakov [Sat, 14 Jul 2012 13:52:09 +0000 (09:52 -0400)]
Teach git-bz to update bug statuses

Note that this commit hardcodes the statuses relevant for the Koha
project.

8 years agoAdd -3 parameter to git am
Paul Poulain [Fri, 4 Nov 2011 09:59:47 +0000 (10:59 +0100)]
Add -3 parameter to git am

With this patch, the git am now automatically has a -3 parameter
That makes no difference for patches that applies directly, but is useful when it's not the case

9 years agoAdd support for bz-user and bz-password and authenticating directly.
software.coop worker [Sat, 4 Jun 2011 17:54:18 +0000 (17:54 +0000)]
Add support for bz-user and bz-password and authenticating directly.

9 years agoTypo fix
Chris Cormack [Tue, 24 May 2011 21:46:29 +0000 (09:46 +1200)]
Typo fix

9 years agoFixing a little copy and paste error with auth-user and auth-password
Chris Cormack [Wed, 18 May 2011 08:29:38 +0000 (20:29 +1200)]
Fixing a little copy and paste error with auth-user and auth-password

9 years agoFix 'git command --amend' typo in man page
Owen W. Taylor [Wed, 27 Apr 2011 17:26:01 +0000 (13:26 -0400)]
Fix 'git command --amend' typo in man page

Should have been 'git commit --amend'. Noticed by MatÄ›j Cepl.

10 years agoFix python-2.7 compatibility with xmlrpclib
Owen W. Taylor [Wed, 22 Sep 2010 19:54:36 +0000 (15:54 -0400)]
Fix python-2.7 compatibility with xmlrpclib

In Python 2.7 xmlrpclib was changed to use httplib.HTTP[S]Connection
instead of the deprecatede httplib.HTTP[S]. This broke our
xmlrpclib.Transport subclass which overrode make_connection().
For compatibility with old and new Python, switch to subclassing
Transport and SafeTransport separately, with a mixin to add cookies.

https://bugzilla.gnome.org/show_bug.cgi?id=628731

10 years agoAdd bz.add-url config variable
Owen W. Taylor [Mon, 8 Feb 2010 21:10:36 +0000 (22:10 +0100)]
Add bz.add-url config variable

Allow specifying the default value for whether URLs are added via
a new git config variable. The -u/--add-url and -n/--no-add-url
override this value.

Based on a patch by Xavier Claessens <xclaesse@gmail.com>

10 years agoUse the actual description entered by the user, rather than unconditionally using...
Bobby Holley [Sat, 14 Aug 2010 23:26:20 +0000 (19:26 -0400)]
Use the actual description entered by the user, rather than unconditionally using commit.subject

By mistake, the code was discarding the description after parsing it out from
the edit buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=628455

10 years agoFix duplicate variable setting
Owen W. Taylor [Mon, 6 Sep 2010 23:56:00 +0000 (19:56 -0400)]
Fix duplicate variable setting

In git_run, interactive was initialized twice. Fix from
Felipe Contreras <felipe.contreras@gmail.com>.

10 years agoDocument new per-tracker configuration
Owen W. Taylor [Mon, 6 Sep 2010 23:30:53 +0000 (19:30 -0400)]
Document new per-tracker configuration

Add documentation for 'path', 'auth-user', and 'auth-password'

10 years agoFix inconsistent authuser/authpwd abbreviations
Owen W. Taylor [Mon, 6 Sep 2010 23:07:35 +0000 (19:07 -0400)]
Fix inconsistent authuser/authpwd abbreviations

Instead of using authuser and authpwd, spell out auth_user and
auth_password (as was already done in some places.) This changes
the config options to auth-user and auth-password.

10 years agoHandle partial URLs
Owen W. Taylor [Mon, 6 Sep 2010 23:05:41 +0000 (19:05 -0400)]
Handle partial URLs

Code to handle parsing a base-path out of the URL would get confused
when given an URL without a path or an URL without a hostname. Catch
those cases.

10 years agoMerge remote branch 'jjongsma/http-auth'
Owen W. Taylor [Mon, 6 Sep 2010 22:48:58 +0000 (18:48 -0400)]
Merge remote branch 'jjongsma/http-auth'

10 years agoUse sqlite3 module if available
Yaakov Selkowitz [Wed, 16 Jun 2010 01:42:12 +0000 (20:42 -0500)]
Use sqlite3 module if available

Since Python 2.5, pysqlite2 has been included in the Python standard
library with the name sqlite3.

https://bugzilla.gnome.org/show_bug.cgi?id=621715

10 years agodocs: Quote example url to workaround asciidoc bug
Robert Bragg [Mon, 14 Jun 2010 18:22:27 +0000 (19:22 +0100)]
docs: Quote example url to workaround asciidoc bug

The example url in the section "Ways to refer to a bug" was causing
asciidoc to emit invalid xml (by closing a docbook ulink tag before the
closing semicolon for a &gt; replacement giving &gt</ulink>;) which
meant that xmlto could not then produce a man page. Quoting the url
seems to workaround this issue.

asciidoc version was 8.4.4

https://bugzilla.gnome.org/show_bug.cgi?id=621580

10 years agoFix typo in google-chrome and chromium support
Marc-Andre Lureau [Sun, 6 Jun 2010 13:38:04 +0000 (15:38 +0200)]
Fix typo in google-chrome and chromium support

10 years agoWhen prompting, loop, don't default on unknown inputs
Owen W. Taylor [Sat, 5 Jun 2010 18:54:40 +0000 (14:54 -0400)]
When prompting, loop, don't default on unknown inputs

Rather than taking empty or unknown input as a "no", just
reprompt. I don't think the default value is obvious enough
for people to actually figure it out and rely on it, so we might
as well add extra robustness to accidental input.

10 years agoFix problem with stray spaces
Owen W. Taylor [Sat, 5 Jun 2010 18:30:56 +0000 (14:30 -0400)]
Fix problem with stray spaces

Python adds a space character between consecutive calls to
print when the first print doesn't end in a newline. To
avoid problems with this, use <file>.write() rather than
print when:

 * We might be printing something empty
 * The newline after the line is added via echoed user
   input on the terminal

Tracked down by William Jon McCann <william.jon.mccann@gmail.com>

10 years agoFix typos in documentation
Christophe Fergeau [Thu, 22 Oct 2009 18:48:47 +0000 (20:48 +0200)]
Fix typos in documentation

10 years agoAdded google-chrome as a possible browser
Owen W. Taylor [Wed, 17 Feb 2010 20:30:24 +0000 (12:30 -0800)]
Added google-chrome as a possible browser

Chromium and Google Chrome have the same basic way of storing
cookes, but different config paths. Add a google-chrome browser
option with the correct config path for Google Chrome.

Based on a patch by Eitan Isaacson <eitan@monotonous.org>

10 years agoAdd support for epiphany with the webkit backend
Jonathon Jongsma [Thu, 13 May 2010 16:33:05 +0000 (11:33 -0500)]
Add support for epiphany with the webkit backend

When they moved to webkit as the browser engine, epiphany changed the location
of their cookies database, but the format remained the same.  This patch adds
support for the new location, but falls back to the old location if the new one
doesn't exist.

https://bugzilla.gnome.org/show_bug.cgi?id=609668

10 years agoHandle 'see <url> <bug reference>'
Owen W. Taylor [Sat, 5 Jun 2010 14:27:43 +0000 (10:27 -0400)]
Handle 'see <url> <bug reference>'

The code that was supposed to handle
'See Mozilla bug http://bugzilla.mozilla.org/show_bug.cgi?...'
as a cross reference was also detecting

'See
https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JS_MaybeGC
https://bugzilla.gnome.org/show_bug.cgi?id=614725'

As a cross-reference. Fix by requiring the "intervening words" not
to have a : or / in them, since "See <url>" is clearly standalone
and something with a : or a / in it is probably an URL.

Reported by Adel Gadllah

https://bugzilla.gnome.org/show_bug.cgi?id=619328

10 years agoPass --ignore-submodules when checking uncommitted changes
Owen W. Taylor [Sat, 5 Jun 2010 14:08:36 +0000 (10:08 -0400)]
Pass --ignore-submodules when checking uncommitted changes

When we check for uncommitted changes prior to adding URLs to
to commit messages we should ignore submodules, since they don't
affect the rebase xprocess we use to add URLs.

Reported by Benjamin Otte

https://bugzilla.gnome.org/show_bug.cgi?id=611693

11 years agoHandle Chromium cookie expiry properly
Owen W. Taylor [Sat, 17 Oct 2009 15:30:28 +0000 (11:30 -0400)]
Handle Chromium cookie expiry properly

Expiry times are in microseconds since the epoch (with the epoch
depending on the exact version of Chromium.)

We weren't handling this at all and just considering all cookies
non-expired because of the seconds vs. microseconds difference.

11 years agoFix subcommands without --add-url option
Owen W. Taylor [Fri, 18 Sep 2009 16:54:43 +0000 (12:54 -0400)]
Fix subcommands without --add-url option

'git bz add-url'  was dying because the code was expecting all subcommands
to have an --add-url option but add-url doesn't.

11 years agoFix adding-url to just some commits
Owen W. Taylor [Fri, 18 Sep 2009 16:52:45 +0000 (12:52 -0400)]
Fix adding-url to just some commits

Adding an URL to just some commits was broken in the rewrite to
be more like git rebase, shuffle things around to fix that.

11 years agoFix ' git bz attach' failure when bugzilla server has a path
Jonathon Jongsma [Tue, 15 Sep 2009 20:01:05 +0000 (15:01 -0500)]
Fix ' git bz attach' failure when bugzilla server has a path

I had accidentally prepended the bugzilla installation path in both
BugServer.send_post() and BugServer.send_request() (which is called by
send_post()), so the path was getting prepended twice when trying to attach a
patch.

11 years agoFix exception when parsing an alias as a url
Jonathon Jongsma [Tue, 15 Sep 2009 19:54:02 +0000 (14:54 -0500)]
Fix exception when parsing an alias as a url

In BugHandle.parse(), we first try to parse the bug reference as a url and then
fall back to interpreting it as an alias from the config file.  Unfortunately,
something like "gnome:123456" gets parsed as a url (with a scheme of 'gnome' and
a path of '123456', and no hostname).  This resulted in us passing a None
hostname to tracker_get_auth_user(), which resulted in an uncaught exception.
From now on, only proceed with treating the bug reference as a url if the scheme
is parsed as 'http' or 'https'.

11 years agoAdd support for bugzilla installations that require http auth
Jonathon Jongsma [Fri, 11 Sep 2009 04:35:25 +0000 (23:35 -0500)]
Add support for bugzilla installations that require http auth

This patch should support http authentication credentials specified in url form
(e.g. https://user:password@foo.com) or in a configuration file.  The additional
configure options are:
- bz-tracker.<alias>.authuser
- bz-tracker.<alias>.authpwd

11 years agoAdd support for bugzilla installations in non-root paths
Jonathon Jongsma [Fri, 11 Sep 2009 04:01:20 +0000 (23:01 -0500)]
Add support for bugzilla installations in non-root paths

Currently, git-bz assumes that all bugzilla installations are at the root of the
host (e.g. http://foo.com/).  It is currently impossible to use git-bz with a
bugzilla installation that is hosted at e.g. foo.com/bugzilla/.  This patch adds
that ability.  A new configuration option ('bz-tracker.alias.path') allows the
path to be specified for a host.

11 years agoMark bugzilla.gnome.org as https
Owen W. Taylor [Wed, 9 Sep 2009 21:21:43 +0000 (17:21 -0400)]
Mark bugzilla.gnome.org as https

bugzilla.gnome.org now supports and redirects to https; even though we
handle the redirects, having it as https in the config will save
a round trip.

11 years agoHandle redirects
Owen W. Taylor [Wed, 9 Sep 2009 21:14:55 +0000 (17:14 -0400)]
Handle redirects

Handle redirect HTTP responses, in particular if a Bugzilla server
is redirecting from http to https.

We try to detect "Bugzilla URL base is over here" when we ask for
show_bug.cgi and remember that for future requests to the same BugServer
to avoid too many redirections.

Switch from caching connection on the BugServer to a global connection
cache, and rewrite the BugServer cache so to deal with the possibility
of redirections.

11 years agoAvoid Python2.6-isms
Emmanuele Bassi [Wed, 9 Sep 2009 14:06:37 +0000 (15:06 +0100)]
Avoid Python2.6-isms

I'm not entirely up to speed with the new syntax of Python 2.6, but
apparently you can now do:

  func(*args, named_arg=value, **options)

and:

  func(*args, named_arg=value)

and Python will happily coalesce named_arg into **options for you.

This is not a valid syntax for Python 2.5, though.

11 years agoAdd 'git bz push -fix' and 'git bz edit --fix'
Owen W. Taylor [Sat, 5 Sep 2009 17:19:11 +0000 (13:19 -0400)]
Add 'git bz push -fix' and 'git bz edit --fix'

Add one-stop-shopping --fix=<bug reference> options to 'git bz push'
and 'git bz edit'. These combine attaching the patches and resolving
the bug for cases where review and testing aren't necessary.

11 years agoMake 'git bz add-url' more like git rebase
Owen W. Taylor [Sat, 5 Sep 2009 15:30:10 +0000 (11:30 -0400)]
Make 'git bz add-url' more like git rebase

Instead of resetting the branch and applying the patches there,
move to a detached HEAD, apply patches to the detached HEAD and
then make a single update to the branch ref.

The only real advantage of this is that 'git reflog show <branchname>'
shows a single meaningful commit.

11 years agoTODO updates
Owen W. Taylor [Sat, 5 Sep 2009 14:10:43 +0000 (10:10 -0400)]
TODO updates

 - Always do 'git bz attach --edit'
 - Apply patches as a single mailbox
 - Make -u/--add-url kinder on the reflog

11 years agoSplit out documentation
Owen W. Taylor [Sat, 5 Sep 2009 13:50:38 +0000 (09:50 -0400)]
Split out documentation

Move the documentation from a giant comment at the start of the file
into a separate asciidoc document. Among other revisions an
'EXAMPLE SESSION' section is added to give a sense of the normal
workflow.

Add a Makefile and asciidoc.conf for converting the asciidoc into HTML
or a man page.

11 years agoCommand line option tweaks
Owen W. Taylor [Sat, 5 Sep 2009 13:27:51 +0000 (09:27 -0400)]
Command line option tweaks

- Remove the -p shortcut for 'git bz edit --pushed' - I don't find
  it sufficiently mnemonic to be worth confusion with things like
  'git add -p'.

- Say -n/--no-add-url instead of just --no-add-url in an error message.

- Fix usage messages to consistently use () for grouping and [] for
  optional parts.

11 years agoAllow omitting bug reference for 'git bz attach'
Owen W. Taylor [Sat, 5 Sep 2009 13:06:19 +0000 (09:06 -0400)]
Allow omitting bug reference for 'git bz attach'

When there is a single bug referenced in the commits being attached,
allow using that instead of specifying a bug reference manually.

11 years agoMake --add-url the default for 'git bz apply' as well
Owen W. Taylor [Sat, 5 Sep 2009 00:55:54 +0000 (20:55 -0400)]
Make --add-url the default for 'git bz apply' as well

1) It's confusing to have it different
2) For git bz push, we want to have that association whenever
   possible, even if you didn't create the patch yourself.

11 years agoIgnore committed/rejected patches
Owen W. Taylor [Sat, 5 Sep 2009 00:39:10 +0000 (20:39 -0400)]
Ignore committed/rejected patches

If patches have a status and it's 'committed' or 'rejected', then
skip them for git-bz apply and don't prompt.

11 years agoAllow configuring bug reference addition
Owen W. Taylor [Wed, 2 Sep 2009 00:01:40 +0000 (20:01 -0400)]
Allow configuring bug reference addition

Allow configuring the behavior of add-url and --add-url with the
bz.add-url-method config variable. For example:

 git config bz.add-url-method subject-prepend:Bug %d -

11 years agoImprove URL addition
Owen W. Taylor [Tue, 1 Sep 2009 23:13:34 +0000 (19:13 -0400)]
Improve URL addition

* Avoid false positives when the bug # is a substring of a number
  in the commit.
* Look at the header, not just the body, for an existing bug #
* When there are local changes, don't print the diffs to the
  the screen.
* For 'git bz add-url' indicate what commits we are skipping, and
  don't prompt if we aren't going to do anything.
* Don't start the rebase procedure if we aren't going to do anything.

11 years agoAdd URLs by default
Owen W. Taylor [Tue, 1 Sep 2009 04:17:06 +0000 (00:17 -0400)]
Add URLs by default

Switch the default for 'git bz file' and 'git bz attach' so that they
automatically add the URL to the commit message. Add -n/--no-add-url
options to disable adding the URL.

11 years agoMake bug changes before attachment changes to avoid token problems
Owen W. Taylor [Tue, 1 Sep 2009 03:54:49 +0000 (23:54 -0400)]
Make bug changes before attachment changes to avoid token problems

If we make attachment changes first, we change the timestamp of the
bug; rather than refetching a new token for the bug (or parsing it
out of the HTML response), we just make the bug changes first and
the attachment changes second.

11 years agoUse .add() for sets not .append()
Owen W. Taylor [Mon, 31 Aug 2009 17:53:59 +0000 (13:53 -0400)]
Use .add() for sets not .append()

Fix a problem with adding patches to the 'unapplied_patches' set.

11 years agoCache legal field values
Owen W. Taylor [Mon, 31 Aug 2009 05:06:21 +0000 (01:06 -0400)]
Cache legal field values

Use our constant-field-value cache to cache legal field values
for each server; this cuts round trips for 'git bz edit' from
3 to 1, which is quite noticeably faster.

The legal_values method is moved from Bug to BugServer, where
it makes more sense.

11 years agoAdd utility for constant-response caching
Owen W. Taylor [Mon, 31 Aug 2009 05:05:07 +0000 (01:05 -0400)]
Add utility for constant-response caching

We don't want to constantly refetch things like legal field values
from the server. Add a simple cache based on RawConfigParser and
pickled values stored in ~/.git-bz-cache.

11 years agoAdd push subcommand to help command
Owen W. Taylor [Mon, 31 Aug 2009 05:02:31 +0000 (01:02 -0400)]
Add push subcommand to help command

When listing the available commands, include 'push'

11 years agoFix checking for missing fields in XML response
Owen W. Taylor [Mon, 31 Aug 2009 04:59:53 +0000 (00:59 -0400)]
Fix checking for missing fields in XML response

   token = bug.find("token")
   self.token = token.text if token else None

Was behaving strangely: apparently ElementTree can be logically
false when non-None. Switch to the more explicit:

   self.token = None if token is None else token.text

11 years agoFix marking patches as obsolete from 'git bz edit'
Owen W. Taylor [Mon, 31 Aug 2009 02:14:15 +0000 (22:14 -0400)]
Fix marking patches as obsolete from 'git bz edit'

Field value for isobsolete must be string "1" not 1.

11 years agoFix git-bz to work with none-GNOME bugzilla
Owen W. Taylor [Mon, 31 Aug 2009 01:52:00 +0000 (21:52 -0400)]
Fix git-bz to work with none-GNOME bugzilla

* Catch the server returning a 500 protocol error on xmlrpc.cgi;
  this happens with bugzilla.openedhand.com  and probably other
  older versions of post 3.0 bugzilla.

* Handle the server not sending bug/attachment tokens

* Make patch-status handling conditional on the server having
  status on patches.

11 years agoAdd 'git bz edit --pushed' and 'git bz push'
Owen W. Taylor [Mon, 31 Aug 2009 01:06:15 +0000 (21:06 -0400)]
Add 'git bz edit --pushed' and 'git bz push'

'git bz edit --pushed <commits>' automatically prepares the bug
editing buffering based on a guess as what edits (comments, resolving
the bug, changing attachment status) are appropriate once the
commits are pushed to the project's official repository.

'git bz push' actually pushes commits and then does
'git bz edit --pushed'

11 years agoAllow capturing stderr from a run git command
Owen W. Taylor [Mon, 31 Aug 2009 01:01:31 +0000 (21:01 -0400)]
Allow capturing stderr from a run git command

If _return_error=True is added to git.<command_name>() then a
tuple of captured output from stderr, stdout is returned. We'll
need this to parse the output of 'git push' which goes to stderr.

11 years agoAllow passing a commit or revision range to 'git bz edit'
Owen W. Taylor [Sun, 30 Aug 2009 22:32:15 +0000 (18:32 -0400)]
Allow passing a commit or revision range to 'git bz edit'

If a commit or revision range is passed to 'git bz edit', make it
edit all the bugs referenced in the commit or commits.

11 years agoAdd a BugHandle class to represent parsed bug references
Owen W. Taylor [Sun, 30 Aug 2009 21:15:35 +0000 (17:15 -0400)]
Add a BugHandle class to represent parsed bug references

Instead of using (host, https, id) tuples, encapsulate the information
in a BugHandle class.

Add get_bug_server() method to look up a server for a (host, https)
pair; we uniquify the server across multiple lookups; this will be
useful if we edit multiple bugs in a single run.

11 years agoAdd an edit subcommand
Owen W. Taylor [Sun, 30 Aug 2009 15:56:04 +0000 (11:56 -0400)]
Add an edit subcommand

git bz edit <bug reference>

  Allows doing common operations on a Bugzilla bug without going to
  your web browser. An editable buffer is brought up in a git-like
  fashion, where you can add comments, resolve a bug, and change
  the status of patches.

This is really a warm-up for 'git bz push' which will do a
semi-automatic job of figuring out all the appropriate edits that
need to be made when pushing a set of commits that are annotated
with bug references.

11 years agoAdd a method for getting legal field values
Owen W. Taylor [Sun, 30 Aug 2009 15:54:50 +0000 (11:54 -0400)]
Add a method for getting legal field values

Add Bug.legal_values() to query the server via XML-RPC to find
out legal values for a particular field.

11 years agoAdd a method to update a patch on a bug
Owen W. Taylor [Sun, 30 Aug 2009 15:53:13 +0000 (11:53 -0400)]
Add a method to update a patch on a bug

Add Bug.update_patch() to allow changing fields of an existing
attachment (status, isobsolete, etc.)

This requires saving all the fields when parsing them out of the
bug XML, since we have to pass them back to attachment.cgi.

11 years agoAdd a method to update a bug
Owen W. Taylor [Sun, 30 Aug 2009 15:52:16 +0000 (11:52 -0400)]
Add a method to update a bug

Add Bug.update() to allow changing fields in an existing bug.
(adding comments, setting the status/resolution, etc.)

11 years agoAdd helper functions for handling abbrevations
Owen W. Taylor [Sun, 30 Aug 2009 15:48:39 +0000 (11:48 -0400)]
Add helper functions for handling abbrevations

 abbreviation_help_string(['apple', 'pear', 'potato']) =>
   '[a]pple, [pe]ar, [po]tato'

 expand_abbreviation('pea', ['apple', 'pear', 'potato']) =>
   'pear'

11 years agoAdd a helper function for checking for success
Owen W. Taylor [Sun, 30 Aug 2009 15:45:29 +0000 (11:45 -0400)]
Add a helper function for checking for success

Encapsulate the process of grepping through successful (200)
responses from Bugzilla to see if they were *really* successful
in a function.

11 years agoAllow files=None for BugServer.send_post()
Owen W. Taylor [Sun, 30 Aug 2009 01:03:17 +0000 (21:03 -0400)]
Allow files=None for BugServer.send_post()

We only want to pass in a non-None files in one place, so allow
files=None to be the same as {}.

11 years agoFile bugs via XML-RPC when possible
Owen W. Taylor [Sat, 29 Aug 2009 15:16:00 +0000 (11:16 -0400)]
File bugs via XML-RPC when possible

If the server supports XML-RPC (3.0 or newer), then filing via
xmlrpc.cgi has advantages:

 - We get a string error message instead of an HTML page
 - We can not specify priority/severity and let the server
   default it; this is important since there aren't standard
   priorities.

So, we try to first file via xmlrpc.cgi's Bug.create method and
if we get a 404, fall back to the old method of a form post.

The configuration for a couple of fields is changed to use the human
readable field names from Bug.create rather than the database-field
names of post_bug.cgi.

 default-bug-severity => default-severity
 default-rep-platform => default-platform

11 years agoSplit HTTP communication out of Bug class
Owen W. Taylor [Sat, 29 Aug 2009 13:48:36 +0000 (09:48 -0400)]
Split HTTP communication out of Bug class

Create a separate BugServer class that represents a Bugzilla server
instance and has send_request()/send_post() methods.

11 years agoFix error message when not logged in
Owen W. Taylor [Sat, 29 Aug 2009 15:37:06 +0000 (11:37 -0400)]
Fix error message when not logged in

A string with unsubstituted %s was being printed; substitute in
the host and browser properly.

Pointed out by Jonathon Jongsma

11 years agoImprove error handling when bug reference is incorrect
Jonathon Jongsma [Thu, 27 Aug 2009 04:25:15 +0000 (23:25 -0500)]
Improve error handling when bug reference is incorrect

If the user specifies the bug url on the command line but the url violates our
assumptions, git-bz doesn't currently handle it well.  For instance, the
following commandline invocation:

git bz attach http://bugzilla.foo.org HEAD

will fail the regex that checks whether it is a bugzilla url (since it is
missing show_bug.cgi), so it will interpret it as a 'alias:1234'-style
reference.  'http' is interpreted as the alias, but when that is not found in
the git config, it will attempt to look up a browser cookie for the host 'http'.
That will also fail, but it will report a misleading error which is something like:

Please log in to 'http' in Firefox

This patch just does a little sanity checking that the bug id is a number and
aborts with a slightly more helpful error message if that is not true.

11 years agoFix to work again with Firefox
Owen W. Taylor [Mon, 24 Aug 2009 16:28:37 +0000 (12:28 -0400)]
Fix to work again with Firefox

The version of Colin's Chromium patch I applied was outdated and had an obvious
left-over in the Xulrunner codepaths that made things no longer with with Firefox
and Epiphany. Fix.

11 years agoSupport chromium cookies
Colin Walters [Mon, 27 Jul 2009 19:53:11 +0000 (15:53 -0400)]
Support chromium cookies

Chromium uses sqlite for cookies as well and with a very similar
(but not identical) schema compared to xulrunner.  Abstract things
a bit so that chromium can use most of the same code.

11 years agoGet attachment data from XML bug dump instead of downloading separately
Owen W. Taylor [Mon, 24 Aug 2009 15:31:07 +0000 (11:31 -0400)]
Get attachment data from XML bug dump instead of downloading separately

All of the bugtrackers we care about (gnome,mozilla,freedesktop,openedhand),
include attachment data in the ctype=xml output, so:

 - Use excludefield=attachmentdata when we don't want attachment data
 - Use the data downloaded with the XML data when we do want attachment
   data (git bz apply) rather than downloading it separately.

This fixes problems with bugzilla servers that use a redirect for attachments.

11 years agoFix to work with Bugzilla 3.4
Owen W. Taylor [Sat, 15 Aug 2009 23:41:57 +0000 (19:41 -0400)]
Fix to work with Bugzilla 3.4

Bugzilla 3.4 (like the new GNOME bugzilla)

 - Requires a status for attached patches
 - Uses a different title for succesful attachments

11 years agoPass -M to git-format-patch
Owen W. Taylor [Thu, 25 Jun 2009 20:44:15 +0000 (16:44 -0400)]
Pass -M to git-format-patch

Passing -M to git-format-patch when creating patches means that renames
will be shown as renames, increasing reviewability of the resulting
patches.

11 years agoMake 'git bz file <commit>' just file that commit
Owen W. Taylor [Sat, 25 Apr 2009 20:10:26 +0000 (16:10 -0400)]
Make 'git bz file <commit>' just file that commit

Deviate from git-format-patch in the handling of a single revision:
file a bug with a single patch is definitely more common than filing
a bug with a range of patches and this results in less mystical
invocations. Hopefully git-format-patch will eventually catch up.

Remove the support for --num=<N> and -N since it's minimally useful
now; it's not impossible to want to do 'git bz file old_commit^.. -2'
but I don't want to clutter the interface.

11 years agoMove default-product and default-component to main bz section
Owen W. Taylor [Sat, 25 Apr 2009 18:33:54 +0000 (14:33 -0400)]
Move default-product and default-component to main bz section

Picking up product and component from the tracker specific config
was never useful and annoying; move the options
bz.default-product and bz.default-component.

Display useful help when product/component aren't specified.

(No concession to backwards-compat here: people can easily
reconfigure, especially with the help.)

11 years agoWork around Firefox-3.5 locking problems with a copy
Owen W. Taylor [Sat, 25 Apr 2009 18:09:52 +0000 (14:09 -0400)]
Work around Firefox-3.5 locking problems with a copy

Firefox-3.5 seems to always hold cookies.sqlite locked while the
browser is open. Work around this by, when we hit a lock error,
making a copy and reading from that. Not 100% reliable, but should
work much of the time.

11 years agoFactor out common code between Firefox and Epiphany cookie reading
Owen W. Taylor [Sat, 25 Apr 2009 17:52:13 +0000 (13:52 -0400)]
Factor out common code between Firefox and Epiphany cookie reading

Make both call a common get_cookies_from_sqlite() to avoid code
duplication. Return errors by raising a CookieError so that we can
centralize information about git-config bz.browser into one place.

11 years agoAdd support for epiphany as well
Andy Wingo [Wed, 21 Jan 2009 12:09:06 +0000 (13:09 +0100)]
Add support for epiphany as well

Add bugzilla support for epiphany. Enable via:

 git config --global bz.browser epiphany

Switch back via:

 git config --global bz.browser firefox3

11 years agoAdd checks to try and detect when -u/--add-url won't work
Owen W. Taylor [Sat, 25 Apr 2009 17:13:19 +0000 (13:13 -0400)]
Add checks to try and detect when -u/--add-url won't work

Check for:
 - Commits already pushed to a remote branch
 - Commits that aren't on the current branch
 - Merge commits

11 years agoAdd TODO item - Automatically guess obvious obsoletes
Owen W. Taylor [Thu, 4 Dec 2008 11:47:53 +0000 (06:47 -0500)]
Add TODO item - Automatically guess obvious obsoletes

11 years agoAdd TODO items
Owen W. Taylor [Thu, 4 Dec 2008 11:37:19 +0000 (06:37 -0500)]
Add TODO items

  Allow omitting bug reference when obvious
  Default to -e/--edit when only one commit

11 years agoAllow a separate description for git bz file
Owen W. Taylor [Thu, 4 Dec 2008 04:01:29 +0000 (23:01 -0500)]
Allow a separate description for git bz file

Only use the commit body as the bug description when filing a new bug
if no other description is specified; if another description is
entered, use the commit body as the description for the attachment.

11 years agoSkip prompting about attachments when editing comment
Owen W. Taylor [Thu, 4 Dec 2008 03:49:53 +0000 (22:49 -0500)]
Skip prompting about attachments when editing comment

If -e/--edit is specified and there is only one patch, go
straight to the edit, the user can abort from there if necessary.

11 years agoAllow editing attachment comment and obsoletes
Owen W. Taylor [Thu, 4 Dec 2008 03:41:38 +0000 (22:41 -0500)]
Allow editing attachment comment and obsoletes

Add a -e/--edit option to 'git-bz-attach' to bring up the
description/comment in an editor. Existing patches are shown
as commented out Obsoletes: lines that can be uncommented to
to obsolete the old patches.

11 years agoFix resolving URL bug references
Owen W. Taylor [Sun, 23 Nov 2008 16:24:08 +0000 (11:24 -0500)]
Fix resolving URL bug references

Fix a problem where https was always used when a bug reference
was specified as an URL: fhttp(s?) gives a group(1) of "" not
None when the s is missing

11 years agoImprove documentation of aliases and configuration
Owen W. Taylor [Sat, 22 Nov 2008 19:04:57 +0000 (14:04 -0500)]
Improve documentation of aliases and configuration

Switch the example alias from the 'bgo' to the less obscure 'gnome'.
(Suggestion from Ray Strode.) Other minor tweaks to the docs.

11 years agoAllowing configuring a default product and component
Owen W. Taylor [Sat, 22 Nov 2008 19:00:45 +0000 (14:00 -0500)]
Allowing configuring a default product and component

Allowing specifying bz-tracker.<tracker>.default-product and
bz-tracker.<tracker>.default-component. This is useful when done
in the per-repository config.

Add a "Per-repository configuration" section in the docs with examples.

11 years agoMake -b/--bugzilla a global option
Owen W. Taylor [Sat, 22 Nov 2008 18:59:48 +0000 (13:59 -0500)]
Make -b/--bugzilla a global option

Allow specifying -b/--bugzilla for all subcommands and not just
for for 'file'

11 years agoAdd TODO item: Reconsider initial description for 'git bz file'
Owen W. Taylor [Sat, 22 Nov 2008 16:36:57 +0000 (11:36 -0500)]
Add TODO item: Reconsider initial description for 'git bz file'

11 years agoAllow spaces in products and components
Owen W. Taylor [Sat, 22 Nov 2008 16:25:44 +0000 (11:25 -0500)]
Allow spaces in products and components

While spaces in products and components may not be common,
bugzilla.openedhand.com has, for example, "Metacity (Clutter port)"
as a product. So allow that.

11 years agoMinor indentation tweak
Owen W. Taylor [Thu, 20 Nov 2008 20:31:25 +0000 (15:31 -0500)]
Minor indentation tweak

Tweak style from last patch to match personal preference.

11 years agoMake firefox profile lookup more relaxed
Tommi Komulainen [Thu, 20 Nov 2008 15:32:07 +0000 (15:32 +0000)]
Make firefox profile lookup more relaxed

Select the first profile with a Path entry, and in case of multiple
profiles use the one with Default=1

Fixes profile lookup with profiles.ini that looks like:

[General]
StartWithLastProfile=1

[Profile0]
Name=default
IsRelative=1
Path=t0ps3cr3t.default

11 years agoAdd TODO item: Specifying a default product/component
Owen W. Taylor [Wed, 19 Nov 2008 19:11:53 +0000 (14:11 -0500)]
Add TODO item: Specifying a default product/component

11 years agoFix git bz file of the last most recent commit
Owen W. Taylor [Wed, 19 Nov 2008 19:03:15 +0000 (14:03 -0500)]
Fix git bz file of the last most recent commit

rev_list_commits() wasn't working properly when the returned list of
commits was empty because "".split("\n") is [""] not []. Special
case that. (Reported by Colin Walters.)

11 years agoRemove dependency on GitPython
Owen W. Taylor [Wed, 19 Nov 2008 05:17:41 +0000 (00:17 -0500)]
Remove dependency on GitPython

Replace usage of random low-level parts of GitPython with a simple
convenience functionality similar to that offered by git.cmd. For
example:

 git.commit(file="-", amend=True, _input=input)

Include special options _input/_quiet/_interactive to allow removing
several cases where subprocess.Popen() was used directly and improve
output on git command failure.

Also, use commit.subject rather than commit.message to be consistent
with standard Git terminology.