summaryrefslogtreecommitdiff
path: root/gbp
AgeCommit message (Collapse)AuthorFilesLines
2014-05-24Revert "Determine build_dir upfront"Guido Günther1-1/+5
This reverts commit b2549fac19f2d666552291a4fcf2020ca0570834.
2014-05-22Improve error reporting on hooksGuido Günther1-13/+20
Make it obvious that a hook failed and not a gbp internal function
2014-05-22Improve error reporting on failed commandsGuido Günther1-6/+4
Make it more clear if the command exited with non zero exit status. Also don't report the command line twice. Closes: #748248
2014-05-22Determine build_dir upfrontGuido Günther1-5/+1
so it's available to all hooks
2014-05-19pq: Try harder to cleanup after a failed patchGuido Günther1-0/+1
If we fail to apply the patch the tree is left in a dirty state so reset to the last head. This avoids irritating errors like: gbp:error: Failed to apply 'debian/patches/poison+remember_trash': Failed to commit tree: fatal: invalid date format: 1998/03/21 following files would be overwritten by checkout: doc/hosts.nntp.5 innd/art.c innd/innd.h innd/rc.c Please, commit your changes or stash them before you can switch branches. Aborting Thanks: Marco d'Itri for the repo to debug this
2014-05-19pq: Print proper error message if we fail to apply the treeGuido Günther1-2/+2
e.g. instead of gbp:error: Failed to apply 'debian/patches/poison+remember_trash' we now have gbp:error: Failed to apply 'debian/patches/poison+remember_trash': Failed to commit tree: fatal: invalid date format: 1998/03/21
2014-05-16Fix comitter vs committer typosGuido Günther5-9/+9
Thanks: Sandro Tosi Closes: #748339
2014-05-07Handle version format errors more gracefullyGuido Günther1-1/+3
So far if a package claimed to be non native but the version number didn't contain a '-' we failed like: Traceback (most recent call last): File "/usr/bin/gbp", line 9, in <module> load_entry_point('gbp==0.6.13', 'console_scripts', 'gbp')() File "/usr/lib/python2.7/dist-packages/gbp/scripts/supercommand.py", line 82, in supercommand return module.main(args) File "/usr/lib/python2.7/dist-packages/gbp/scripts/buildpackage.py", line 541, in main output_dir) File "/usr/lib/python2.7/dist-packages/gbp/scripts/buildpackage.py", line 96, in prepare_upstream_tarball upstream_tree = git_archive_build_orig(repo, cp, output_dir, options) File "/usr/lib/python2.7/dist-packages/gbp/scripts/buildpackage.py", line 270, in git_archive_build_orig upstream_tree = get_upstream_tree(repo, cp, options) File "/usr/lib/python2.7/dist-packages/gbp/scripts/buildpackage.py", line 245, in get_upstream_tree cp['Upstream-Version']) File "/usr/lib/python2.7/dist-packages/gbp/deb/git.py", line 107, in version_to_tag return format % dict(version=DebianGitRepository._sanitize_version(version)) File "/usr/lib/python2.7/dist-packages/gbp/deb/git.py", line 122, in _sanitize_version return version.replace('~', '_').replace(':', '%') It shouldn't be like that.
2014-04-04Slightly improve usage outputGuido Günther1-2/+2
2014-04-03config: add decorator to add_option_* functionsGuido Günther10-87/+219
This allows us to build an internal list of valid options and print these.
2014-04-03Import command not moduleGuido Günther1-3/+3
This matches the function name
2014-04-02Revert "GitRepository/add_remote_repo: fix the 'tags' argument"Markus Lehtonen1-1/+1
Which caused an unwanted behavior of not fetching refs/heads at all -- only tags were fetched. This reverts commit 5dd598fb8f2a9109189fad6cf631811f12ce2130 Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2014-04-01Add minimal 'config' commandGuido Günther2-2/+100
This only allows to print single config values so far. Closes: #733470
2014-04-01Test option parser fallbacks more thoroughlyGuido Günther1-1/+0
revealing another bug where we overwrote parsed values with defaults Closes: #733759
2014-03-29Use a much simpler version to fix the command name in --helpGuido Günther9-15/+22
mostly reverting e1780f0. Closes: #742907
2014-03-27Fix command outputGuido Günther9-16/+15
The first line lacked the subcommand like: $ gbp pull --help Usage: gbp [options] - safely update a repository from remote instead of $ gbp pull --help Usage: gbp pull [options] - safely update a repository from remote ^^^^
2014-03-27pq: minor log message typo fixMarkus Lehtonen1-1/+1
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2014-03-27GitRepository/add_remote_repo: fix the 'tags' argumentMarkus Lehtonen1-1/+1
Explicitly use --tags in git arguments - otherwise tags might not be fetched. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2014-03-27GitRepository/get_commit_info: correctly handle file renames/copiesMarkus Lehtonen1-1/+2
Use the '--no-renames' git command line option in order to prevent two filenames per entry. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2014-02-23import_dsc: Create missing debian branch with --create-missing-branchesGuido Günther1-1/+2
Closes: #739888
2014-02-19config: Don't pull in config defaults twiceGuido Günther1-4/+5
This would otherwise overwrite values set in the legacy config sections. Closes: #733759
2014-02-18config: Don't pull in config defaults twiceGuido Günther1-1/+3
This would otherwise overwrite values set in the legacy config sections. Closes: #733759
2014-01-07import_orig: test error paths of find_sourceGuido Günther1-5/+19
2014-01-05Change the default of cleaner to /bin/trueGuido Günther1-1/+1
Running a clean command within version control by default nowadays causes more trouble than it helps. It's unnecessary with pbuilder/cowbuilder/sbuild and with export-dir. So change the default from 'debuild clean' to a noop ('/bin/true'). Closes: #670624
2014-01-05Make parsing config file sections symmetricGuido Günther1-6/+12
Always read the legacy command's config file section prior to the subcommand's config file section. Until now 'gbp <subcommand>' would read '[subcommand]' as well as '[gbp-<subcommand>]' sections while 'gbp-<subcommand>' would only read '[gbp-<subcommand>]' sections. Closes: #733759
2014-01-05Avoid backtrace on config file parse errorsGuido Günther5-15/+50
"gbp buildpackage" did this already but others didn't Closes: #733759
2013-12-20Determine changes file name based on dpkg-buildpackage optionsGuido Günther1-7/+19
Closes: #732678
2013-11-06log: add error and warning aliasesGuido Günther1-0/+6
since I tend to use them instead of err and warn. Closes: #728896
2013-11-06import-dsc; Merge upstream version by tagGuido Günther1-3/+27
instead of simply using the upstream branch name. THis makes sure we also merge upstream versions that were imported previously with e.g. "gbp import-orig". Closes: #698222
2013-11-05import-dsc: allow to skip Debian tag creationGuido Günther1-10/+16
Closes: #636368
2013-10-31pq: support 'Topic' patch-export commandMarkus Lehtonen2-5/+5
Topic can be defined with either 'Gbp: Topic <topic>' or 'Gbp-Pq: Topic <topic>' in the commit message. This is to replace the "gbp-pq-topic: <topic>" command. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2013-10-31pq: listen to 'Gbp-Pq:' commands, tooMarkus Lehtonen1-0/+1
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2013-10-31pq: add format_diff() functionMarkus Lehtonen1-1/+27
For generating a patch file from a diff between two arbitrary commits. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2013-10-31pq: support patch-export commandsMarkus Lehtonen2-4/+32
Support giving commands to pq as a meta tag in commit message. The format is "Gbp: <command> [args]". Currently, only one command is supported. namely 'ignore'. That is, one can use 'Gbp: Ignore' in the commit message for ignoring the commit in patch-generation. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2013-10-31pq: properly generate non-ascii patch filesMarkus Lehtonen1-11/+28
Encode non-ascii email headers properly. Also, set MIME headers correctly for the message body if the commit message body contains non-ascii characters. The reason for constructing the message in a little bit "clumsy" way is the intention is to match the output of git-format-patch as closely as possible. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2013-10-31pq.format_patch: support file path filteringMarkus Lehtonen1-5/+27
Implements a filter option that allows filtering out changes to certain files/paths in the patch-generation. A commit is totally ignored if all files would be filtered out. The path filter is given as a Python regexp. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2013-10-31pq: rewrite patch export functionalityMarkus Lehtonen2-153/+100
Use our own function for constructing the patch files instead of using the format-patch command of git. This way, we get the desired output format directly, without the need for the error-prone "format-patch, parse patch files, mangle and re-write patch files" cycle. Also, fix patch naming in patch generation when '--no-patch-numbers' is used. Previously, multiple commits with the same subject resulted in multiple patches having the same filename. This lead into broken series with missing patches as patch files were overwritten by the topmost commit. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2013-10-22gbp-clone: support cloning to a specific directoryGuan Junchun1-3/+5
Closes: #725666 Signed-off-by: Guan Junchun <junchunx.guan@intel.com> Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2013-10-22gbp-clone: support repo URLs like "host:repo.git"Guan Junchun1-1/+4
Previously, gbp didn't correctly parse this kind of URL and clone failed. Signed-off-by: Guan Junchun <junchunx.guan@intel.com> Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2013-10-16Be more robust about git status output changesGuido Günther1-18/+21
by using --porcelain. Heavily based on a patch by rian m. carlson Closes: #726260
2013-09-16pq: Only print number or tries if we try more than onceGuido Günther1-1/+1
2013-09-16pq: print which patch failed to applyGuido Günther1-0/+1
2013-09-10GitRepository: deprecate the get_remote_repos methodMarkus Lehtonen1-0/+2
Superceded byt the get_remotes() method. Change-Id: I34f9e8b8188b5a40ce21d2f74e6068f2aaec9e60 Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2013-09-10GitRepository.has_remote_repo: use get_remotes methodMarkus Lehtonen1-1/+1
Use the new get_remotes() method Change-Id: Ic34cf590a6f36e6fa0af2ffbe932c8ae3a198944 Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2013-09-10git: new class and method for remote repositoriesMarkus Lehtonen1-0/+61
Add a new GitRemote class for representing git remote repositories. The initial, very limited, version only contains information about the fetch and push URLs of the remote repository. Also, add a new GitRepository.get_remotes() method for getting remote repositories as instances of the new GitRemote class. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2013-09-10GitRepository.pull: Add 'all_remotes' optionLingchaox Xin1-5/+10
Also changes the method to utilize the GitArgs class. Signed-off-by: Lingchaox Xin <lingchaox.xin@intel.com> Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2013-09-10GitRepository.push: Add 'tags' optionLingchaox Xin1-1/+5
Signed-off-by: Lingchaox Xin <lingchaox.xin@intel.com> Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2013-09-10GitRepository.push: Add 'force' optionLingchaox Xin1-1/+6
Signed-off-by: Lingchaox Xin <lingchaox.xin@intel.com> Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2013-09-10GitRepository.list_tree: add 'paths' optionMarkus Lehtonen1-1/+3
Change-Id: I9331fec6fcd0e58dad7cb4a571a683e09ce08011 Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2013-09-10GitRepository.diff: add 'ignore_submodules' optionMarkus Lehtonen1-1/+4
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>