summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* quilt-el: Fix patch select completionLeonid Movshovich2015-01-181-1/+1
| | | | | | A typo in quilt-patch-list prevents patch select completion operation. Reviewed and tested by Satoru Takeuchi.
* quilt-el: Fix tramp supportLeonid Movshovich2015-01-181-3/+3
| | | | | | | quilt-find-dir goes to endless recursion if root is not '/'. This holds for files opened with tramp for example. Reviewed and tested by Satoru Takeuchi.
* Test refresh behavior on hard-linked patchesJean Delvare2015-01-141-0/+36
| | | | | | If a patch file has hard links, refreshing it should break the links so that the other copies are left unmodified. Test this behavior to avoid breaking it accidentally.
* setup: Merge testsJean Delvare2014-12-181-32/+33
| | | | Don't test the same condition twice in a row, it's inefficient.
* setup: Add --fast optionJean Delvare2014-12-183-7/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is an alternative implementation of "quilt setup" for rpm spec files, which is much faster than the original implementation. The idea is to have rpmbuild generate our working tree directly, instead of taking note of everything it does and then replaying that record from scratch. The new implementation is enabled with option --fast. The original implementation can be selected with --slow, which is the default. Having this option makes it possible to set the default to --fast in ~/.quiltrc and revert to --slow on the command line on a case-by-case basis. This will also make it easier if we decide to change the default in the future. In general, the generated working tree should be the same with --slow or --fast. There are 3 known exceptions though: * The header of the series files is incomplete when using --fast, which means that you can't reuse these series files to feed "quilt setup" later. * If the spec file generates files other than with the tar, unzip and patch commands, you wouldn't get these files in your working tree with --slow, but with --fast you will. * With --fast, all patches are added to the series file, regardless of whether they apply or not. This also means that patches which fail to apply are not reported as such until you attempt to push them. On large packages, this alternative implementation was found to be up to 4 times faster than the original implementation.
* inspect-wrapper: Trace calls earlierJean Delvare2014-12-181-3/+3
| | | | | | | Trace the calls to the patch/tar/unzip wrapper earlier. That way, if anything goes wrong, we know which type of file was being processed. Even if nothing goes wrong, the user now sees the file type as it is being processed (which can take a long time.)
* setup: New function to generate series headerJean Delvare2014-12-081-9/+13
| | | | | | Move the code that generates the series file header to a separate function. This makes the code easier to read due to less folding, and this is also more efficient than spawning a subshell.
* push: Clean up stray references to interactive modeJean Delvare2014-12-072-5/+1
| | | | | The push --interactive option has been removed long ago, clean up remaining references.
* Do not use interactive mode with "quilt push -f"Martin Panter2014-12-071-5/+2
| | | | | | The interactive mode was broken long ago, and not forcing the patch causes unpredictable and confusing behavior. Now the "patch -f" option is always used.
* push: Add --refresh optionJean Delvare2014-11-122-2/+40
| | | | | Add an option to automatically refresh each patch after is was successfully applied.
* pop: Add --refresh optionJean Delvare2014-11-122-2/+45
| | | | | Add an option to automatically refresh each patch before it gets unapplied.
* Allow patch format options to pass throughJean Delvare2014-11-121-0/+5
| | | | | In order to make "quilt_command refresh" work properly, we must ensure that format options are passed through.
* inspect-wrapper: Use exec to pass control backJean Delvare2014-11-121-2/+2
| | | | | | | When the wrapper script is done, it passes control back to tar, unzip or patch. Nothing needs to be done after that, so we might as well use exec to switch to the new process. That should be marginally faster than regular forking.
* setup: Fix path to extra patches in series fileJean Delvare2014-11-052-1/+27
| | | | | | | | | | | | | | | Extra patches (typically contained in archives) end up in the working directory, not the source directory where regular patches live. In the most common case, it makes no difference because both directories are the same. However, as soon as options -d or --sourcedir are used in conjunction with extra patches, the working directory and the source directory are different, and the paths to the extra patches in the series file get wrong. While we can't possible handle the case where the source and working directories are completely different, we can easily handle the most typical case where the working directory is a subdirectory of the source directory.
* inspect-wrapper: Minor code optimizationJean Delvare2014-11-051-2/+4
| | | | Don't test if inputfile is set twice in a row.
* inspect: Split the patch/tar/unzip wrapper to a separate scriptJean Delvare2014-11-053-282/+271
| | | | | | | | | | I couldn't find any reason why the patch/tar/unzip wrapper is generated each time inspect is invoked. Make it a separate script in its own right and let the patch, tar and unzip links point to it. This makes this piece of code easier to read, edit, trace and debug. This also solves the case where the filesystem hosting the temporary files is mounted with noexec.
* setup: Introduce function normalize_pathJean Delvare2014-11-031-10/+11
| | | | | Move the path normalization code to a separate function, to avoid redundancy and make the code more readable.
* inspect: Exclude more files from md5sumsJean Delvare2014-11-031-1/+1
| | | | | | | | A few more files can be excluded from md5sums as we know they are neither patches nor archives: * _constraints, _service and baselibs.conf, from the Build Service * signature files * rpmlintrc files
* inspect: Don't explicitly delete the temporary data fileJean Delvare2014-10-301-1/+0
| | | | | | | | | This temporary data file is overwritten as needed and the directory it sits in is blasted when the script exits, so there is no point in explicitly deleting this file at the beginning of each wrapper invocation. This simple change speeds up "inspect" by 3-4% in my tests.
* inspect: Pass through the wrappers when appropriateJean Delvare2014-10-301-1/+4
| | | | | | The wrappers may be called before the %prep section is entered, in which case RPM_BUILD_DIR isn't set yet. In that case we want to pass trough transparently.
* Don't export arbitrary variablesJean Delvare2014-10-302-1/+1
| | | | | | | | | | Instead of exporting an arbitrary list of quilt internal variables, which helper scripts may or may not use, let each command explicitly export variables as needed before calling an helper script. This is both clearer and more efficient. In practice, only dependency-graph needs to access internal variables at the moment, and it only uses $QUILT_PC.
* pop: Rearm consistency check if neededJean Delvare2014-10-302-6/+26
| | | | | | | | If the series file is inconsistent, "quilt pop" will disable the consistency check as it updates the timestamp of the database file. It's OK if all patches are popped. If not then the series file may still be inconsistent. In that case, we want to update the timestamp of the series file, to rearm the consistency check.
* inspect: List all options in usage textJean Delvare2014-10-291-1/+1
| | | | Options -v and --sourcedir were not listed.
* setup/inspect: CleanupsJean Delvare2014-10-292-13/+16
| | | | | | * Drop quotes that aren't needed and break syntax highlighting in some editors. * Coding style cleanups.
* push: Fix handling of "quilt push 0"Jean Delvare2014-10-292-0/+15
| | | | | | | | | "quilt push 0" returns the following cryptic message: Now at patch patches/quilt So add the same check we already have in command pop and detect when nothing needs to be done, returning the more sane message: No patch applied
* Check for series file consistencyJean Delvare2014-10-272-3/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Quilt allows manual changes to the series file to some degree. For example, adding comments or reordering patches in the unapplied section of the series file is OK. However, changing the order of applied patches breaks a number of assumptions and can cause quilt to produce unexpected or confusing results. For example, starting from this: + patches/01.patch = patches/02.patch patches/03.patch patches/04.patch and moving the last patch at the beginning of the series file, "quilt series -v" will print: + patches/04.patch + patches/01.patch = patches/02.patch patches/03.patch That is, it will claim that 04.patch is applied, while it it not. Likewise, 04.patch would be listed by neither "quilt applied" nor "quilt unapplied". While addressing all such cases would certainly be possible, that would require a significant amount of work, and would come with performance penalties. It would also be difficult to be certain that all issues have been found and addressed. So it seems more reasonable to simply spot such manual changes to the series file and ask the user to pop all patches to start from a clean state as needed.
* inspect: Comment updateJean Delvare2014-10-251-1/+1
|
* Optimize function is_numericJean Delvare2014-10-241-1/+1
| | | | | The same test can be implemented using only shell code, saving the cost of piping to an external command.
* Test push and pop with numeric argumentsJean Delvare2014-10-151-0/+23
|
* inspect: Skip version checkJean Delvare2014-10-131-0/+3
| | | | | | | Commit a626fcf8b95f2ff51701a00d65043b9f65207514 (setup: Skip version check) is insufficient for spec file-based setup commands. inspect itself also sources patchfns, so it must also skip the version check explicitly.
* inspect: Handle long options passed to tarJean Delvare2014-10-131-0/+45
| | | | | | | | | | | | | | | | The command line interface to tar is complex and sometimes confusing, but we should still do our best to figure out where the file name is on that command line. Add support for the --file FILE and --file=FILE options. Other long options must be explicitly skipped, as well as short options not containing the letter "f". With this we should be good to go in most real-world cases, but there are still a few corner cases we may not handle properly. Let's just hope we never hit them. Reported by Petr Tesarik.
* files: Add support for unapplied patchesJean Delvare2014-07-232-2/+10
| | | | | | We already have a function to figure out which files are touched by unapplied patches. The only thing missing to let the user call "quilt files" on unapplied patches was two small spots of glue.
* filenames_in_patch: Print each file only onceJean Delvare2014-07-231-2/+3
| | | | | Filter out duplicates in filenames_in_patch so that callers don't have to deal with them.
* Optimize function filenames_in_patch againJean Delvare2014-07-161-2/+2
| | | | | Another minor optimization in filenames_in_patch: reorder the field testing to only test $3 as needed.
* Test context patchesJean Delvare2014-07-141-1/+43
| | | | | Now that the patches command works with context patches, we can test that.
* patches: Use filenames_in_patchJean Delvare2014-07-142-26/+7
| | | | | Function filenames_in_patch in patchfns does roughly the same as function touched_by_patch, so fix the former and use it.
* Optimize function filenames_in_patchJean Delvare2014-06-241-2/+2
| | | | | | Minor optimizations: * Drop unneeded quotes * Drop unneeded pattern capturing
* Helper function checking for external toolJean Delvare2014-06-174-25/+19
| | | | | | | | | Introduce a helper function checking for availability of a given external tool. A standard error message is displayed if the required tool is not available. Use this helper function in graph, mail and setup, instead of duplicating the code.
* mail: Use array_joinJean Delvare2014-06-111-1/+1
| | | | | Use the array_join helper function, it is more readable than bash magic.
* Fix NEWS file formatJean Delvare2014-06-091-3/+3
|
* Informative message when using graph without graphvizMartin Quinson2014-06-092-1/+16
| | | | | | | | | | | | | | | | | | Previously, trying to use the graph subcommand without graphviz being installed resulted in a cryptic error message: Can't exec "tred": No such file or directory at /usr/lib/perl/5.14/IO/File.pm line 66, <STDIN> line 1. graphviz is already in the Suggests field of the debian package, and we cannot raise this dependency severity given the central role of quilt in the debian infrastructure. This informative error message is much more sensible. Also, merge the error message with the one from quilt mail when formail is not installed to ease the life of translators. Fixes Debian bug #659944: Bug-Debian: http://bugs.debian.org/659944
* setup: Check for rpmbuild availabilityJean Delvare2014-06-091-0/+8
| | | | | Before running inspect on a spec file, verify that rpmbuild is available. Print a user-friendly error message if not.
* setup: Skip version checkJean Delvare2014-06-092-0/+10
| | | | | | | The version check is irrelevant when running "quilt setup", as it is creating a brand new working tree anyway. Reported by Petr Tesarik.
* partially revert commit fc06a60fKent R. Spillner2014-06-043-94/+0
| | | | | | | | Commit 48ff26d6 already added a QUILT_COMPAT_PROG_PATH line for cp to configure.ac, and the corresponding CP variable in Makefile.in. I don't know how I missed this originally; sorry for the churn! Signed-off-by: Kent R. Spillner <kspillner@acm.org>
* faildiff.test: loosen error string constraintKent R. Spillner2014-06-031-1/+1
| | | | | | | | diff might be called by a different name if the configure script was invoked with the --with-diff argument. Make the permissions test in faildiff.test match other names as well. Signed-off-by: Kent R. Spillner <kspillner@acm.org>
* Makefile.in: fix patch-wrapper checksAndreas Gruenbacher2014-06-032-3/+11
| | | | | | | | | | | | 293c4ddb added checks to Makefile.in to disable the patch-wrapper test when the configure script is not invoked with the --with-patch-wrapper argument. Those checks assumed that PATCH_WRAPPER will always be empty unless --with-patch-wrapper was used. However, PATCH_WRAPPER will be set to "no" when the configure script is invoked with the --without-patch-wrapper argument. Reported-by: Kent R. Spillner <kspillner@acm.org> Signed-off-by: Andreas Gruenbacher <andreas.gruenbacher@gmail.com>
* Set version to 0.63v0.63Martin Quinson2014-05-253-11/+14
|
* Set version to 0.62v0.62Martin Quinson2014-05-073-11/+11
|
* reupdate the translation files (no manual change)Martin Quinson2014-05-074-329/+410
|
* translations need love tooMartin Quinson2014-05-071-0/+4
|