| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
There are way too many occurrences of ${0##*/}. Store the result in
a variable and use it as needed. Also hard-code the name when it is
known, to save the cost of variable substitution altogether.
|
|
|
|
|
| |
The inspect-wrapper script looks up files by md5sum. If that fails,
we should notify the user that something went wrong.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Let function cat_to_new_file optionally backup the destination file
before overwriting it. This has two advantages:
* This avoids duplicating code on the caller's side. Functions header
and refresh both need to perform a backup.
* This guarantees the consistency of the backup logic. At the moment,
the refresh command would handle the backup of a symlinked file
just fine while the header command would misbehave in that case.
Now that the header command handles symlinked patches properly, also
test it so that we don't break it accidentally later.
|
|
|
|
|
| |
Extend the hard-linked patch test case to also check the behavior
when updating the header of such a patch.
|
|
|
|
| |
Add a test case for backup failure to the test suite.
|
|
|
|
|
|
|
|
|
|
|
|
| |
I frequently use sub-directories to store different patchsets under
the quilt patches/ directory. Unfortunately, the quilt emacs mode
does not handle this case and the file is not considered editable.
The issue seems to be in the quilt-top-patch which does an equivalent
of basename on the patch name. The proposal below changes the
quilt-editable routine to keep the full name of the patch.
Signed-off-by: Cédric Le Goater <legoater@free.fr>
|
|
|
|
|
|
|
| |
"mv" may or may not overwrite a read-only file by default, depending
on whether or not it is considered to be interactive. Removing the
file explicitly before avoids that uncertainty and makes it easier to
play the test case manually.
|
| |
|
|
|
|
|
| |
Add the editor syntax hint comments to 3 files which do not have
them yet.
|
|
|
|
|
|
|
| |
Source files include metadata comments to help text editors apply the
right syntax highlighting. Generated files should not be edited so
these comments are not needed there. Text editors should get the
language right for generated files in the first place anyway.
|
|
|
|
|
|
| |
In the general case, when doing a backup copy of a patch on refresh,
the modification time of the file is preserved. We should do the same
when the patch is a symbolic link.
|
|
|
|
|
|
|
|
| |
We just changed the behavior of the refresh command to no longer
break symbolic links. While preserving the links is the right thing
to do in the general case, this approach fails if the patch file is
read-only. In that case we want to replace the link itself with the
refreshed patch, as we used to.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change the core behavior of quilt to not remove symlinks to the patch
files.
Historical notes:
This is an 6 year old patch that is still actively used for the
Yocto Project and others.
http://lists.nongnu.org/archive/html/quilt-dev/2008-01/msg00004.html
Revised again here:
http://comments.gmane.org/gmane.comp.handhelds.openembedded/34224
[Edited by Jean Delvare: removed a compatibility option, we'll
introduce it only if users ask for it. Also cleaned up the test
case a bit.]
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is one corner case which is not properly handled by the "edit"
command. If a patch deletes a file, and the user calls "quilt edit"
on that file but does not actually add anything back to it, "quilt
remove" is called on the file when the editor exits. This causes
the file to be restored to its original state before the patch deleted
it. The user never asked for that, so the file should be left to its
deleted state in this case. The file must only be removed from the
patch if it was not part of the patch originally.
The same problem would occur if the editor deleted the file. In
general text editors don't do that, they'd leave an empty file
instead, but nothing prevents them from actually deleting the file so
we should handle this case properly too.
|
|
|
|
|
|
|
|
|
|
|
| |
Commit f1c186ee renamed command "remove" to "revert". Commit bd1dfdab
changed the semantics of command "revert". Commit 6d2501ac restored
command "remove". However command "edit" is still calling command
"revert" to remove files from the patch when it should be using
command "remove".
This case was not covered by the test suite, which is why the bug was
not spotted earlier.
|
|
|
|
|
|
|
|
|
| |
Cover one more use case of the "edit" command in the test case: file
creation.
Also reorder some of the commands to make the tests easier to follow.
The intent is easier to understand when the result is tested after
each command.
|
| |
|
|
|
|
|
| |
Merge the two revert test cases into a single, complete and commented
test file.
|
|
|
|
|
|
| |
@ETCDIR@ is substituted at build time so it should not appear in
translated messages. Replace it with %s and pass the actual value as a
parameter.
|
| |
|
|
|
|
|
| |
The original message has the dollar sign protected, so the Japanese
translation should do the same.
|
| |
|
|
|
|
| |
Translation updates take time so it should be the first item.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Bash's printf doesn't allow reordering the arguments.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
When a link's target is the directory it lives in, create_symlink
would erroneously link to "..". Fix the code to properly link to "."
instead.
This fixes openSUSE bug #916007:
https://bugzilla.opensuse.org/show_bug.cgi?id=916007
Credits to Robert Milasan for spotting the bug.
|
|
|
|
|
|
|
|
|
|
|
| |
The code was broken in 3 ways:
* I forgot to escape the "." so it would match any character.
* The g flag is not enough to catch consecutive "." components,
because pattern matches can't overlap.
* A trailing "." component would not be removed.
This fixes commit 3fd706a50b7dbb4f8db6e5db014729db51e6beb0
("setup: Let normalize_path deal with "."".)
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
@RELEASE@ is replaced with the package-level release number in two
places: the spec file, where it is legitimate, and the mail command's
User-Agent string, where I think it is not. The package release
number should not affect the contents of the package, otherwise it
makes it difficult to compare build results.
I have checked other MUA (Mutt, Thunderbird, Claws Mail) and they all
only include the version, not the release number in their User-Agent
string.
Drop the @RELEASE@ replacement rule to make sure we don't use it
accidentally anywhere in the future. The spec file has its own build
rule so it is not affected.
|
|
|
|
|
|
| |
Don't filter out test/patch-wrapper.test if we are going to add it
back. Do it the other way around, that is include it by default and
only filter it out if needed.
|
|
|
|
|
|
|
|
| |
Run the tests in predictable order. This allows comparing the output
of "make check" between builds. With older versions of GNU make, the
list was already sorted, but this is no longer the case.
Suggested by Rich Burridge.
|
|
|
|
|
|
|
|
|
|
|
| |
quilt depends on procmail because 'quilt mail' requires formail.
However, formail is only used to extract header values from messages.
Since quilt already requires sed we can replace formail -x uses with
sed instead. The sed script is slightly complicated because it
needs to handle the case of "Long Header Fields" definied in RFC
2822, but essentially all it's doing is: look for the first line
beginning with the name of header we are looking for, and print
every line until one that does not start with blanks.
|
|
|
|
| |
Add coverage of the multi-line header case to the mail test case.
|
|
|
|
|
|
|
| |
There is no good reason for the setup command to be split into two
scripts, setup and inspect. Merge inspect into setup to save the
extra interfacing overhead. Performance improvement reaches 5% on
simple packages.
|
|
|
|
|
|
|
| |
Fix funtion create_symlink. If the link has an absolute path then its
target should be set to an absolute path as well. This fixes the use
of "quilt setup" with an absolute -d path and a relative --sourcedir
path.
|
|
|
|
|
|
|
| |
Let function normalize_path handle "." path components. Otherwise
invocations like "quilt setup --sourcedir=. foo.spec" may produce
invalid series files, and "quilt setup -d ./dir foo.spec"
generates a broken "patches" link.
|
|
|
|
|
|
| |
A typo in quilt-patch-list prevents patch select completion operation.
Reviewed and tested by Satoru Takeuchi.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Don't test the same condition twice in a row, it's inefficient.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.)
|
|
|
|
|
|
| |
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.
|