summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* setup, scripts/inspect: Properly escape spaces in directory and archive namesJean Delvare2012-02-173-4/+18
| | | | This fixes bug #25579.
* Makefile.in: Let "make clean" delete generated source tarballsJean Delvare2012-02-012-0/+9
|
* Makefile.in: Include utilfns when generating source tarball (for real)Jean Delvare2012-02-011-0/+1
|
* grep: Accept file names with spacesJean Delvare2012-02-013-2/+14
| | | | | | | | | | This is a continuation of Yasushi SHOJI's initial work of fixing support for file names with spaces. This time I fixed support in the grep command. This is particularly important because the grep command operates on all files in the work tree, even if they aren't touched by any patch, so the chances that one of them has a space in its name is greater. As before, no guarantee is made that all options are covered, but this should be a good starting point.
* Makefile.in: Include utilfns when generating source tarballJean Delvare2012-02-011-0/+5
|
* Whitespace cleanups.Jean Delvare2012-02-011-4/+4
|
* backup-files: Skip echo-only loops in silent modeJean Delvare2012-02-012-13/+23
| | | | | | | | In silent mode, loops which do nothing but print messages turn into no-ops. Skip them completely to save some time. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Keep /dev/null openedJean Delvare2012-02-011-7/+9
| | | | | | | | Keep /dev/null opened as we will need it repeatedly. Avoiding repeated calls to open brings a small performance boost. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Drop support for backup removalJean Delvare2012-02-012-17/+3
| | | | | | | Drop support for backup removal (option -x). Quilt doesn't use it. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Drop support for -L on restoreJean Delvare2012-02-011-14/+4
| | | | | | | Drop support for -L on restore, quilt doesn't use it. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Inline restore_fastJean Delvare2012-02-011-22/+10
| | | | | | | | | The two callers of restore_fast already know if they are operating on an empty or non-empty backup-file. Move the code back to the calling sites, to avoid this redundant test. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Clarify command line optionsJean Delvare2012-02-011-15/+23
| | | | | | | | | | | | | | Misc cleanups: * Add my copyright and simplify the reference to the initial version. * Drop the program description, as it is redundant with the usage function. * Clarify the usage message, to make it clear what each option is doing, and which ones are compatible with each other. * Let the script complain if no action is given, as this has to be a user or developer error. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Try mass copy first on copyJean Delvare2012-02-011-4/+18
| | | | | | | | | | | | | | When copying many files to a snapshot directory, try a mass copy first, as it is much faster. It is however not portable and may thus fail. If it fails, fallback to per-file processing, which always works. This change results in a huge performance boost on systems where the cp command supports all the required options (which includes all systems using GNU coreutils.) Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Separate function copy_manyJean Delvare2012-02-011-0/+33
| | | | | | | | Create a dedicated function for mass-copying files. At the moment it isn't bringing any gain, but this will get improved next. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: New function for copyJean Delvare2012-02-013-2/+52
| | | | | | | | | | | | | | | | We are abusing backup-files's "backup" function for quilt snapshot. What we need is semantically different, and it works almost by accident. We don't want linked copies of the files, we want real copies, and the fact that "quilt snapshot" may touch the working files is a little frightening IMHO. So, implement a separate "copy" function which does what we need. Not only it does the right thing, but it will also be somewhat faster than "backup", as we can do straight copies of the files without checking for their link count first. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Skip first mkdir on restoreJean Delvare2012-02-011-6/+3
| | | | | | | | | | The mass link/copy will create the required directories by itself if it succeeds. As files being removed don't require the creation of a directory, this means we can move the creation of the directories to the case where non-empty files have to be processed individually. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Try mass link/copy first on restoreJean Delvare2012-02-011-5/+21
| | | | | | | | | | | | | | When restoring all files from a backup directory, try a mass link (or copy) first, as it is much faster. It is however not portable and may thus fail. If it fails, fallback to per-file processing, which always works. This change results in a huge performance boost on systems where the cp command supports all the required options (which includes all systems using GNU coreutils.) Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Separate lists for empty and non-empty filesJean Delvare2012-02-011-14/+22
| | | | | | | | Create two separate lists for empty and non-empty files. This will allow dedicated handling of each set of files. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Remember the list of filesJean Delvare2012-02-015-54/+30
| | | | | | | | | | Remember the results of the find command, to avoid having to run it again later. We use a temporary file rather than a local variable, because you can't store binary zeroes in a bash string, and because the temporary file approach performs better on large file sets. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Quick exit when unlinking is not neededJean Delvare2012-02-011-0/+14
| | | | | | | | | | | The "check for hard links" use case is almost always a no-op. Check if any work is needed at all first, and only if this is the case, walk the list of files and unlink the faulty files. This approach results in a huge performance gain in the most common case, and a very small performance loss in the uncommon case. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Separate function restore_allJean Delvare2012-02-011-21/+29
| | | | | | | | | | Move the code to restore all files from a backup directory to a separate function. This only duplicates a small amount of code, and makes the code clearer. This will also allow further optimizations of the specific use case of "quilt pop". Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Avoid negationsJean Delvare2012-02-011-13/+13
| | | | | | | | In if/else constructs, always start with the positive case, to avoid a negation. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Optimize noopJean Delvare2012-02-011-3/+10
| | | | | | | | | Optimize the noop operation. The only use case in quilt is to ensure that files have a link count of 1, so we can check that OPT_NOLINKS is set once and for all, instead of checking again with every file. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Drop curly bracesJean Delvare2012-02-011-10/+10
| | | | | | | | | Don't use the ${VAR} construct when we don't have to, it's slightly slower than simple variable names. Likewise, don't use quotes when we don't have to. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Batch mass restoreJean Delvare2012-02-014-1/+153
| | | | | | | | | | | | | When restoring all files, batch the first steps (directory creation and target file removal) and last steps (optional touch and backup file removal). This makes the typical restore case (quilt pop) much, much faster. Note: a similar optimization would be possible for the removal function (-x), but quilt doesn't use this function at the moment. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Use internal implementation of dirnameJean Delvare2012-02-014-40/+53
| | | | | | | | Use quilt's internal implementation of dirname. This is more efficient than calling an external binary, and avoids a dependency. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Make input methods mutually exclusiveJean Delvare2012-02-011-22/+19
| | | | | | | | | Make the various file list selection methods mutually exclusive. This is the actual usage scheme by quilt, and handling them separately makes the code both clearer and more efficient. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Drop variable filelistJean Delvare2012-02-011-9/+5
| | | | | | | | No need to copy all file names to a dedicated array, we can use $@ directly instead. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Optimize backupJean Delvare2012-02-011-10/+5
| | | | | | | | | | | | | | Optimize backup: * Due to the way quilt uses backup-files, the backup file will never exist, so there is no point checking for this. * Don't attempt to create directories which already exist. * Use > instead of touch to create new files, it's faster. * Stop supporting option -t on backup, it's undocumented and quilt doesn't use it. * Drop unneeded quotes around constant. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Optimize restoreJean Delvare2012-02-011-14/+8
| | | | | | | | | | | Optimize restore: * Don't call mkdir if we know the directory already exists. * Don't try to optimize the -L case, quilt doesn't use it anyway and the current optimization is broken. * Move common code at the end of the function. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Split code to sparate functionsJean Delvare2012-02-011-63/+78
| | | | | | | | The different actions don't have much code in common, so it would be more efficient to let different functions handle them. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Simplify find loopJean Delvare2012-02-012-13/+7
| | | | | | | Let find report errors by itself. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Prefix must be a directoryJean Delvare2012-02-011-20/+7
| | | | | | | | Enforce the fact that the prefix must be a directory. This is what quilt does, and enforcing it allows some code clean-ups. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Speed up ensure_nolinksJean Delvare2012-02-011-6/+3
| | | | | | | | | | | Calling dirname and basename is costly, and here we really don't have to. We can simply use a different temporary file name. Additionally, if stat succeeds, it will always return a valid number, so we can relax the tests. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Inline copy_file and link_or_copy_fileJean Delvare2012-02-011-18/+4
| | | | | | | | | Expand functions copy_file and link_or_copy_file at calling locations, the code is so simple that it hardly deserves dedicated functions. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Drop variable prognameJean Delvare2012-02-011-5/+3
| | | | | | | | The program name $0 is a global variable, there is no point in passing it to functions as a parameter. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Skip test for file presenceJean Delvare2012-02-011-4/+0
| | | | | | | | | Don't test for the presence of files to process. Nothing wrong will happen if we don't have any file to process, and backup-files is for quilt's internal use only, so there is no need to be paranoid. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* backup-files: Drop suffix optionJean Delvare2012-02-011-16/+4
| | | | | | | | Quilt doesn't make use of the suffix (-z) option of backup-files, so there is no point in implementing it Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* Clean up legacy C codeJean Delvare2012-02-016-3080/+11
| | | | | | | Finally get rid of the old C implementation of backup-files, together with all the related checks in configure and variables in Makefile. Signed-off-by: Jean Delvare <jdelvare@suse.de>
* BSD compatibility: rmdirJean Delvare2012-02-012-24/+10
| | | | | | | | | | Use rmdir -p instead of open-coding it. The more complex code was maybe needed to properly handle symbolic links, but we know that there won't be symbolic links in the backup directory, so the extra complexity isn't needed. Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* BSD compatibility: cpJean Delvare2012-02-011-2/+2
| | | | | | | | | Avoid using uncommon cp options which hurt portability. I fail to see why we would need them anyway, as we are never working with symbolic links by construction (quilt doesn't support them.) Signed-off-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Raphael Hertzog <hertzog@debian.org>
* BSD compatibility: statJean Delvare2012-02-014-3/+156
| | | | | | | | The stat command on BSD takes different parameters from the GNU one. Let configure find out which variant is available, and use the right parameters. Signed-off-by: Jean Delvare <jdelvare@suse.de>
* Make backup-files a shell scriptMartin Quinson2012-02-0112-58/+334
| | | | | | | | Make backup-files a shell script instead of a binary, so we can make quilt arch: all [Steve Langasek, thanks so much] (Closes: Debian #363659) Signed-off-by: Jean Delvare <jdelvare@suse.de>
* Add a dedicated test case for backup-filesJean Delvare2012-02-012-0/+207
| | | | Signed-off-by: Jean Delvare <jdelvare@suse.de>
* import: Fix import of patches from a subdirectory (bug #35244)Jean Delvare2012-01-314-7/+33
|
* Set version to 0.51.v0.51Jean Delvare2012-01-283-10/+15
|
* Remove parse-patch which is no longer usedJean Delvare2012-01-288-259/+11
| | | | | | | | Based on a preliminary patch by Yasushi SHOJI. None of quilt code uses parse-patch anymore. The last one, it seems, was contrib/import.diff, which was removed at 2f9728a9. So, just remove it.
* test suite: in the "ls -l" output, ignore additional characters after the ↵Andreas Gruenbacher2012-01-231-5/+5
| | | | | | | file permissions Access control lists will add a "+", and SELinux will add a "."; we don't care in the test suite.
* quilt mail: CC people in more common patch headersAndreas Gruenbacher2012-01-231-2/+6
| | | | | In addition to Signed-off-by and Acked-by, also CC people in Suggested-by, Reviewed-by, Requested-by, Reported-by, and Tested-by headers.
* inspect: Complain if wrapper script can't be executedJean Delvare2012-01-232-0/+12
| | | | | | | There is no guarantee that the wrapper script can be executed. For example users can mount their temporary directories with noexec for security reasons. Instead of failing with no explanation, complain when this situation is detected.