summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge remote branch 'jjongsma/http-auth'Owen W. Taylor2010-09-061-13/+84
|\
| * Fix ' git bz attach' failure when bugzilla server has a pathJonathon Jongsma2009-09-151-2/+0
| | | | | | | | | | | | | | 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.
| * Fix exception when parsing an alias as a urlJonathon Jongsma2009-09-151-22/+23
| | | | | | | | | | | | | | | | | | | | 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'.
| * Add support for bugzilla installations that require http authJonathon Jongsma2009-09-111-8/+50
| | | | | | | | | | | | | | | | 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
| * Add support for bugzilla installations in non-root pathsJonathon Jongsma2009-09-111-12/+42
| | | | | | | | | | | | | | | | 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.
* | Use sqlite3 module if availableYaakov Selkowitz2010-07-011-1/+4
| | | | | | | | | | | | | | 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
* | docs: Quote example url to workaround asciidoc bugRobert Bragg2010-06-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | 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
* | Fix typo in google-chrome and chromium supportMarc-Andre Lureau2010-06-071-6/+6
| |
* | When prompting, loop, don't default on unknown inputsOwen W. Taylor2010-06-051-5/+9
| | | | | | | | | | | | | | 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.
* | Fix problem with stray spacesOwen W. Taylor2010-06-051-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Fix typos in documentationChristophe Fergeau2010-06-051-9/+10
| |
* | Added google-chrome as a possible browserOwen W. Taylor2010-06-051-6/+18
| | | | | | | | | | | | | | | | 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>
* | Add support for epiphany with the webkit backendJonathon Jongsma2010-06-051-2/+8
| | | | | | | | | | | | | | | | | | 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
* | Handle 'see <url> <bug reference>'Owen W. Taylor2010-06-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Pass --ignore-submodules when checking uncommitted changesOwen W. Taylor2010-06-051-2/+2
| | | | | | | | | | | | | | | | | | | | 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
* | Handle Chromium cookie expiry properlyOwen W. Taylor2009-10-171-5/+16
| | | | | | | | | | | | | | | | 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.
* | Fix subcommands without --add-url optionOwen W. Taylor2009-09-181-1/+1
| | | | | | | | | | 'git bz add-url' was dying because the code was expecting all subcommands to have an --add-url option but add-url doesn't.
* | Fix adding-url to just some commitsOwen W. Taylor2009-09-181-28/+27
|/ | | | | Adding an URL to just some commits was broken in the rewrite to be more like git rebase, shuffle things around to fix that.
* Mark bugzilla.gnome.org as httpsOwen W. Taylor2009-09-091-0/+1
| | | | | | 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.
* Handle redirectsOwen W. Taylor2009-09-092-25/+89
| | | | | | | | | | | | | 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.
* Avoid Python2.6-ismsEmmanuele Bassi2009-09-091-2/+4
| | | | | | | | | | | | | | | 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.
* Add 'git bz push -fix' and 'git bz edit --fix'Owen W. Taylor2009-09-052-47/+115
| | | | | | 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.
* Make 'git bz add-url' more like git rebaseOwen W. Taylor2009-09-052-21/+25
| | | | | | | | | 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.
* TODO updatesOwen W. Taylor2009-09-051-3/+48
| | | | | | - Always do 'git bz attach --edit' - Apply patches as a single mailbox - Make -u/--add-url kinder on the reflog
* Split out documentationOwen W. Taylor2009-09-055-201/+396
| | | | | | | | | | 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.
* Command line option tweaksOwen W. Taylor2009-09-051-7/+8
| | | | | | | | | | | - 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.
* Allow omitting bug reference for 'git bz attach'Owen W. Taylor2009-09-052-10/+31
| | | | | When there is a single bug referenced in the commits being attached, allow using that instead of specifying a bug reference manually.
* Make --add-url the default for 'git bz apply' as wellOwen W. Taylor2009-09-041-2/+2
| | | | | | 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.
* Ignore committed/rejected patchesOwen W. Taylor2009-09-041-0/+4
| | | | | If patches have a status and it's 'committed' or 'rejected', then skip them for git-bz apply and don't prompt.
* Allow configuring bug reference additionOwen W. Taylor2009-09-011-11/+101
| | | | | | | 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 -
* Improve URL additionOwen W. Taylor2009-09-011-9/+23
| | | | | | | | | | | * 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.
* Add URLs by defaultOwen W. Taylor2009-09-011-15/+28
| | | | | | 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.
* Make bug changes before attachment changes to avoid token problemsOwen W. Taylor2009-08-311-10/+17
| | | | | | | 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.
* Use .add() for sets not .append()Owen W. Taylor2009-08-311-1/+1
| | | | Fix a problem with adding patches to the 'unapplied_patches' set.
* Cache legal field valuesOwen W. Taylor2009-08-311-19/+28
| | | | | | | | | 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.
* Add utility for constant-response cachingOwen W. Taylor2009-08-311-1/+40
| | | | | | 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.
* Add push subcommand to help commandOwen W. Taylor2009-08-311-1/+1
| | | | When listing the available commands, include 'push'
* Fix checking for missing fields in XML responseOwen W. Taylor2009-08-311-3/+3
| | | | | | | | | | 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
* Fix marking patches as obsolete from 'git bz edit'Owen W. Taylor2009-08-301-1/+1
| | | | Field value for isobsolete must be string "1" not 1.
* Fix git-bz to work with none-GNOME bugzillaOwen W. Taylor2009-08-301-29/+53
| | | | | | | | | | | * 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.
* Add 'git bz edit --pushed' and 'git bz push'Owen W. Taylor2009-08-301-8/+143
| | | | | | | | | | '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'
* Allow capturing stderr from a run git commandOwen W. Taylor2009-08-301-0/+6
| | | | | | 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.
* Allow passing a commit or revision range to 'git bz edit'Owen W. Taylor2009-08-301-5/+82
| | | | | If a commit or revision range is passed to 'git bz edit', make it edit all the bugs referenced in the commit or commits.
* Add a BugHandle class to represent parsed bug referencesOwen W. Taylor2009-08-301-28/+63
| | | | | | | | | 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.
* Add an edit subcommandOwen W. Taylor2009-08-301-1/+118
| | | | | | | | | | | | | | 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.
* Add a method for getting legal field valuesOwen W. Taylor2009-08-301-0/+15
| | | | | Add Bug.legal_values() to query the server via XML-RPC to find out legal values for a particular field.
* Add a method to update a patch on a bugOwen W. Taylor2009-08-301-9/+49
| | | | | | | | 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.
* Add a method to update a bugOwen W. Taylor2009-08-301-0/+19
| | | | | Add Bug.update() to allow changing fields in an existing bug. (adding comments, setting the status/resolution, etc.)
* Add helper functions for handling abbrevationsOwen W. Taylor2009-08-301-0/+23
| | | | | | | | abbreviation_help_string(['apple', 'pear', 'potato']) => '[a]pple, [pe]ar, [po]tato' expand_abbreviation('pea', ['apple', 'pear', 'potato']) => 'pear'
* Add a helper function for checking for successOwen W. Taylor2009-08-301-18/+33
| | | | | | Encapsulate the process of grepping through successful (200) responses from Bugzilla to see if they were *really* successful in a function.