From 6d34843d20c71d66171920fe50710d8a4c0e3b5e Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Tue, 7 Jul 2020 23:14:15 -0700 Subject: Commit Debian 3.0 (quilt) metadata [dgit (9.10~bpo10+1) quilt-fixup] --- debian/patches/debian-changes | 1618 ----------------------------------------- debian/patches/series | 1 - 2 files changed, 1619 deletions(-) delete mode 100644 debian/patches/debian-changes delete mode 100644 debian/patches/series diff --git a/debian/patches/debian-changes b/debian/patches/debian-changes deleted file mode 100644 index 07b4b66..0000000 --- a/debian/patches/debian-changes +++ /dev/null @@ -1,1618 +0,0 @@ -The Debian packaging of magit-annex is maintained using dgit. For the -sake of an efficient workflow, Debian modifications to the upstream -source are squashed into a single diff, rather than a series of quilt -patches. To obtain a patch queue for package version 1.2.3-1: - - # apt-get install dgit - % dgit clone magit-annex - % cd magit-annex - % git log --oneline 1.2.3..debian/1.2.3-1 -- . ':!debian' - -See dgit(1), dgit(7) and dgit-maint-merge(7) for more information. ---- magit-annex-1.7.1+git20200427.1.ef5dce62.orig/.travis.yml -+++ magit-annex-1.7.1+git20200427.1.ef5dce62/.travis.yml -@@ -4,6 +4,7 @@ env: - global: - - CURL="curl -fsSkL --retry 9 --retry-delay 9" - - GHRAW="https://raw.githubusercontent.com" -+ - BUILD_MAGIT_LIBGIT="false" - matrix: - - EMACS_VERSION=25.1 - - EMACS_VERSION=master -@@ -21,13 +22,9 @@ install: - - git clone --quiet https://github.com/magit/magit.git - - cd magit - - $CURL -O ${GHRAW}/magnars/dash.el/master/dash.el -- - $CURL -O ${GHRAW}/magit/ghub/master/ghub.el -- - $CURL -O ${GHRAW}/magit/ghub/master/ghub-graphql.el -- - $CURL -O ${GHRAW}/vermiculus/graphql.el/master/graphql.el -- - $CURL -O ${GHRAW}/magit/magit-popup/master/magit-popup.el -- - $CURL -O ${GHRAW}/volrath/treepy.el/master/treepy.el -+ - $CURL -O ${GHRAW}/magit/transient/master/lisp/transient.el - - $CURL -O ${GHRAW}/magit/with-editor/master/with-editor.el -- - $EMACS -Q --batch -L . -f batch-byte-compile dash.el ghub.el ghub-graphql.el graphql.el magit-popup.el treepy.el with-editor.el -+ - $EMACS -Q --batch -L . -f batch-byte-compile dash.el transient.el with-editor.el - - make lisp EMACSBIN=$EMACS DASH_DIR=$PWD - - cd .. - - git annex version ---- /dev/null -+++ magit-annex-1.7.1+git20200427.1.ef5dce62/COPYING -@@ -0,0 +1,674 @@ -+ GNU GENERAL PUBLIC LICENSE -+ Version 3, 29 June 2007 -+ -+ Copyright (C) 2007 Free Software Foundation, Inc. -+ Everyone is permitted to copy and distribute verbatim copies -+ of this license document, but changing it is not allowed. -+ -+ Preamble -+ -+ The GNU General Public License is a free, copyleft license for -+software and other kinds of works. -+ -+ The licenses for most software and other practical works are designed -+to take away your freedom to share and change the works. By contrast, -+the GNU General Public License is intended to guarantee your freedom to -+share and change all versions of a program--to make sure it remains free -+software for all its users. We, the Free Software Foundation, use the -+GNU General Public License for most of our software; it applies also to -+any other work released this way by its authors. You can apply it to -+your programs, too. -+ -+ When we speak of free software, we are referring to freedom, not -+price. Our General Public Licenses are designed to make sure that you -+have the freedom to distribute copies of free software (and charge for -+them if you wish), that you receive source code or can get it if you -+want it, that you can change the software or use pieces of it in new -+free programs, and that you know you can do these things. -+ -+ To protect your rights, we need to prevent others from denying you -+these rights or asking you to surrender the rights. Therefore, you have -+certain responsibilities if you distribute copies of the software, or if -+you modify it: responsibilities to respect the freedom of others. -+ -+ For example, if you distribute copies of such a program, whether -+gratis or for a fee, you must pass on to the recipients the same -+freedoms that you received. You must make sure that they, too, receive -+or can get the source code. And you must show them these terms so they -+know their rights. -+ -+ Developers that use the GNU GPL protect your rights with two steps: -+(1) assert copyright on the software, and (2) offer you this License -+giving you legal permission to copy, distribute and/or modify it. -+ -+ For the developers' and authors' protection, the GPL clearly explains -+that there is no warranty for this free software. For both users' and -+authors' sake, the GPL requires that modified versions be marked as -+changed, so that their problems will not be attributed erroneously to -+authors of previous versions. -+ -+ Some devices are designed to deny users access to install or run -+modified versions of the software inside them, although the manufacturer -+can do so. This is fundamentally incompatible with the aim of -+protecting users' freedom to change the software. The systematic -+pattern of such abuse occurs in the area of products for individuals to -+use, which is precisely where it is most unacceptable. Therefore, we -+have designed this version of the GPL to prohibit the practice for those -+products. If such problems arise substantially in other domains, we -+stand ready to extend this provision to those domains in future versions -+of the GPL, as needed to protect the freedom of users. -+ -+ Finally, every program is threatened constantly by software patents. -+States should not allow patents to restrict development and use of -+software on general-purpose computers, but in those that do, we wish to -+avoid the special danger that patents applied to a free program could -+make it effectively proprietary. To prevent this, the GPL assures that -+patents cannot be used to render the program non-free. -+ -+ The precise terms and conditions for copying, distribution and -+modification follow. -+ -+ TERMS AND CONDITIONS -+ -+ 0. Definitions. -+ -+ "This License" refers to version 3 of the GNU General Public License. -+ -+ "Copyright" also means copyright-like laws that apply to other kinds of -+works, such as semiconductor masks. -+ -+ "The Program" refers to any copyrightable work licensed under this -+License. Each licensee is addressed as "you". "Licensees" and -+"recipients" may be individuals or organizations. -+ -+ To "modify" a work means to copy from or adapt all or part of the work -+in a fashion requiring copyright permission, other than the making of an -+exact copy. The resulting work is called a "modified version" of the -+earlier work or a work "based on" the earlier work. -+ -+ A "covered work" means either the unmodified Program or a work based -+on the Program. -+ -+ To "propagate" a work means to do anything with it that, without -+permission, would make you directly or secondarily liable for -+infringement under applicable copyright law, except executing it on a -+computer or modifying a private copy. Propagation includes copying, -+distribution (with or without modification), making available to the -+public, and in some countries other activities as well. -+ -+ To "convey" a work means any kind of propagation that enables other -+parties to make or receive copies. Mere interaction with a user through -+a computer network, with no transfer of a copy, is not conveying. -+ -+ An interactive user interface displays "Appropriate Legal Notices" -+to the extent that it includes a convenient and prominently visible -+feature that (1) displays an appropriate copyright notice, and (2) -+tells the user that there is no warranty for the work (except to the -+extent that warranties are provided), that licensees may convey the -+work under this License, and how to view a copy of this License. If -+the interface presents a list of user commands or options, such as a -+menu, a prominent item in the list meets this criterion. -+ -+ 1. Source Code. -+ -+ The "source code" for a work means the preferred form of the work -+for making modifications to it. "Object code" means any non-source -+form of a work. -+ -+ A "Standard Interface" means an interface that either is an official -+standard defined by a recognized standards body, or, in the case of -+interfaces specified for a particular programming language, one that -+is widely used among developers working in that language. -+ -+ The "System Libraries" of an executable work include anything, other -+than the work as a whole, that (a) is included in the normal form of -+packaging a Major Component, but which is not part of that Major -+Component, and (b) serves only to enable use of the work with that -+Major Component, or to implement a Standard Interface for which an -+implementation is available to the public in source code form. A -+"Major Component", in this context, means a major essential component -+(kernel, window system, and so on) of the specific operating system -+(if any) on which the executable work runs, or a compiler used to -+produce the work, or an object code interpreter used to run it. -+ -+ The "Corresponding Source" for a work in object code form means all -+the source code needed to generate, install, and (for an executable -+work) run the object code and to modify the work, including scripts to -+control those activities. However, it does not include the work's -+System Libraries, or general-purpose tools or generally available free -+programs which are used unmodified in performing those activities but -+which are not part of the work. For example, Corresponding Source -+includes interface definition files associated with source files for -+the work, and the source code for shared libraries and dynamically -+linked subprograms that the work is specifically designed to require, -+such as by intimate data communication or control flow between those -+subprograms and other parts of the work. -+ -+ The Corresponding Source need not include anything that users -+can regenerate automatically from other parts of the Corresponding -+Source. -+ -+ The Corresponding Source for a work in source code form is that -+same work. -+ -+ 2. Basic Permissions. -+ -+ All rights granted under this License are granted for the term of -+copyright on the Program, and are irrevocable provided the stated -+conditions are met. This License explicitly affirms your unlimited -+permission to run the unmodified Program. The output from running a -+covered work is covered by this License only if the output, given its -+content, constitutes a covered work. This License acknowledges your -+rights of fair use or other equivalent, as provided by copyright law. -+ -+ You may make, run and propagate covered works that you do not -+convey, without conditions so long as your license otherwise remains -+in force. You may convey covered works to others for the sole purpose -+of having them make modifications exclusively for you, or provide you -+with facilities for running those works, provided that you comply with -+the terms of this License in conveying all material for which you do -+not control copyright. Those thus making or running the covered works -+for you must do so exclusively on your behalf, under your direction -+and control, on terms that prohibit them from making any copies of -+your copyrighted material outside their relationship with you. -+ -+ Conveying under any other circumstances is permitted solely under -+the conditions stated below. Sublicensing is not allowed; section 10 -+makes it unnecessary. -+ -+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law. -+ -+ No covered work shall be deemed part of an effective technological -+measure under any applicable law fulfilling obligations under article -+11 of the WIPO copyright treaty adopted on 20 December 1996, or -+similar laws prohibiting or restricting circumvention of such -+measures. -+ -+ When you convey a covered work, you waive any legal power to forbid -+circumvention of technological measures to the extent such circumvention -+is effected by exercising rights under this License with respect to -+the covered work, and you disclaim any intention to limit operation or -+modification of the work as a means of enforcing, against the work's -+users, your or third parties' legal rights to forbid circumvention of -+technological measures. -+ -+ 4. Conveying Verbatim Copies. -+ -+ You may convey verbatim copies of the Program's source code as you -+receive it, in any medium, provided that you conspicuously and -+appropriately publish on each copy an appropriate copyright notice; -+keep intact all notices stating that this License and any -+non-permissive terms added in accord with section 7 apply to the code; -+keep intact all notices of the absence of any warranty; and give all -+recipients a copy of this License along with the Program. -+ -+ You may charge any price or no price for each copy that you convey, -+and you may offer support or warranty protection for a fee. -+ -+ 5. Conveying Modified Source Versions. -+ -+ You may convey a work based on the Program, or the modifications to -+produce it from the Program, in the form of source code under the -+terms of section 4, provided that you also meet all of these conditions: -+ -+ a) The work must carry prominent notices stating that you modified -+ it, and giving a relevant date. -+ -+ b) The work must carry prominent notices stating that it is -+ released under this License and any conditions added under section -+ 7. This requirement modifies the requirement in section 4 to -+ "keep intact all notices". -+ -+ c) You must license the entire work, as a whole, under this -+ License to anyone who comes into possession of a copy. This -+ License will therefore apply, along with any applicable section 7 -+ additional terms, to the whole of the work, and all its parts, -+ regardless of how they are packaged. This License gives no -+ permission to license the work in any other way, but it does not -+ invalidate such permission if you have separately received it. -+ -+ d) If the work has interactive user interfaces, each must display -+ Appropriate Legal Notices; however, if the Program has interactive -+ interfaces that do not display Appropriate Legal Notices, your -+ work need not make them do so. -+ -+ A compilation of a covered work with other separate and independent -+works, which are not by their nature extensions of the covered work, -+and which are not combined with it such as to form a larger program, -+in or on a volume of a storage or distribution medium, is called an -+"aggregate" if the compilation and its resulting copyright are not -+used to limit the access or legal rights of the compilation's users -+beyond what the individual works permit. Inclusion of a covered work -+in an aggregate does not cause this License to apply to the other -+parts of the aggregate. -+ -+ 6. Conveying Non-Source Forms. -+ -+ You may convey a covered work in object code form under the terms -+of sections 4 and 5, provided that you also convey the -+machine-readable Corresponding Source under the terms of this License, -+in one of these ways: -+ -+ a) Convey the object code in, or embodied in, a physical product -+ (including a physical distribution medium), accompanied by the -+ Corresponding Source fixed on a durable physical medium -+ customarily used for software interchange. -+ -+ b) Convey the object code in, or embodied in, a physical product -+ (including a physical distribution medium), accompanied by a -+ written offer, valid for at least three years and valid for as -+ long as you offer spare parts or customer support for that product -+ model, to give anyone who possesses the object code either (1) a -+ copy of the Corresponding Source for all the software in the -+ product that is covered by this License, on a durable physical -+ medium customarily used for software interchange, for a price no -+ more than your reasonable cost of physically performing this -+ conveying of source, or (2) access to copy the -+ Corresponding Source from a network server at no charge. -+ -+ c) Convey individual copies of the object code with a copy of the -+ written offer to provide the Corresponding Source. This -+ alternative is allowed only occasionally and noncommercially, and -+ only if you received the object code with such an offer, in accord -+ with subsection 6b. -+ -+ d) Convey the object code by offering access from a designated -+ place (gratis or for a charge), and offer equivalent access to the -+ Corresponding Source in the same way through the same place at no -+ further charge. You need not require recipients to copy the -+ Corresponding Source along with the object code. If the place to -+ copy the object code is a network server, the Corresponding Source -+ may be on a different server (operated by you or a third party) -+ that supports equivalent copying facilities, provided you maintain -+ clear directions next to the object code saying where to find the -+ Corresponding Source. Regardless of what server hosts the -+ Corresponding Source, you remain obligated to ensure that it is -+ available for as long as needed to satisfy these requirements. -+ -+ e) Convey the object code using peer-to-peer transmission, provided -+ you inform other peers where the object code and Corresponding -+ Source of the work are being offered to the general public at no -+ charge under subsection 6d. -+ -+ A separable portion of the object code, whose source code is excluded -+from the Corresponding Source as a System Library, need not be -+included in conveying the object code work. -+ -+ A "User Product" is either (1) a "consumer product", which means any -+tangible personal property which is normally used for personal, family, -+or household purposes, or (2) anything designed or sold for incorporation -+into a dwelling. In determining whether a product is a consumer product, -+doubtful cases shall be resolved in favor of coverage. For a particular -+product received by a particular user, "normally used" refers to a -+typical or common use of that class of product, regardless of the status -+of the particular user or of the way in which the particular user -+actually uses, or expects or is expected to use, the product. A product -+is a consumer product regardless of whether the product has substantial -+commercial, industrial or non-consumer uses, unless such uses represent -+the only significant mode of use of the product. -+ -+ "Installation Information" for a User Product means any methods, -+procedures, authorization keys, or other information required to install -+and execute modified versions of a covered work in that User Product from -+a modified version of its Corresponding Source. The information must -+suffice to ensure that the continued functioning of the modified object -+code is in no case prevented or interfered with solely because -+modification has been made. -+ -+ If you convey an object code work under this section in, or with, or -+specifically for use in, a User Product, and the conveying occurs as -+part of a transaction in which the right of possession and use of the -+User Product is transferred to the recipient in perpetuity or for a -+fixed term (regardless of how the transaction is characterized), the -+Corresponding Source conveyed under this section must be accompanied -+by the Installation Information. But this requirement does not apply -+if neither you nor any third party retains the ability to install -+modified object code on the User Product (for example, the work has -+been installed in ROM). -+ -+ The requirement to provide Installation Information does not include a -+requirement to continue to provide support service, warranty, or updates -+for a work that has been modified or installed by the recipient, or for -+the User Product in which it has been modified or installed. Access to a -+network may be denied when the modification itself materially and -+adversely affects the operation of the network or violates the rules and -+protocols for communication across the network. -+ -+ Corresponding Source conveyed, and Installation Information provided, -+in accord with this section must be in a format that is publicly -+documented (and with an implementation available to the public in -+source code form), and must require no special password or key for -+unpacking, reading or copying. -+ -+ 7. Additional Terms. -+ -+ "Additional permissions" are terms that supplement the terms of this -+License by making exceptions from one or more of its conditions. -+Additional permissions that are applicable to the entire Program shall -+be treated as though they were included in this License, to the extent -+that they are valid under applicable law. If additional permissions -+apply only to part of the Program, that part may be used separately -+under those permissions, but the entire Program remains governed by -+this License without regard to the additional permissions. -+ -+ When you convey a copy of a covered work, you may at your option -+remove any additional permissions from that copy, or from any part of -+it. (Additional permissions may be written to require their own -+removal in certain cases when you modify the work.) You may place -+additional permissions on material, added by you to a covered work, -+for which you have or can give appropriate copyright permission. -+ -+ Notwithstanding any other provision of this License, for material you -+add to a covered work, you may (if authorized by the copyright holders of -+that material) supplement the terms of this License with terms: -+ -+ a) Disclaiming warranty or limiting liability differently from the -+ terms of sections 15 and 16 of this License; or -+ -+ b) Requiring preservation of specified reasonable legal notices or -+ author attributions in that material or in the Appropriate Legal -+ Notices displayed by works containing it; or -+ -+ c) Prohibiting misrepresentation of the origin of that material, or -+ requiring that modified versions of such material be marked in -+ reasonable ways as different from the original version; or -+ -+ d) Limiting the use for publicity purposes of names of licensors or -+ authors of the material; or -+ -+ e) Declining to grant rights under trademark law for use of some -+ trade names, trademarks, or service marks; or -+ -+ f) Requiring indemnification of licensors and authors of that -+ material by anyone who conveys the material (or modified versions of -+ it) with contractual assumptions of liability to the recipient, for -+ any liability that these contractual assumptions directly impose on -+ those licensors and authors. -+ -+ All other non-permissive additional terms are considered "further -+restrictions" within the meaning of section 10. If the Program as you -+received it, or any part of it, contains a notice stating that it is -+governed by this License along with a term that is a further -+restriction, you may remove that term. If a license document contains -+a further restriction but permits relicensing or conveying under this -+License, you may add to a covered work material governed by the terms -+of that license document, provided that the further restriction does -+not survive such relicensing or conveying. -+ -+ If you add terms to a covered work in accord with this section, you -+must place, in the relevant source files, a statement of the -+additional terms that apply to those files, or a notice indicating -+where to find the applicable terms. -+ -+ Additional terms, permissive or non-permissive, may be stated in the -+form of a separately written license, or stated as exceptions; -+the above requirements apply either way. -+ -+ 8. Termination. -+ -+ You may not propagate or modify a covered work except as expressly -+provided under this License. Any attempt otherwise to propagate or -+modify it is void, and will automatically terminate your rights under -+this License (including any patent licenses granted under the third -+paragraph of section 11). -+ -+ However, if you cease all violation of this License, then your -+license from a particular copyright holder is reinstated (a) -+provisionally, unless and until the copyright holder explicitly and -+finally terminates your license, and (b) permanently, if the copyright -+holder fails to notify you of the violation by some reasonable means -+prior to 60 days after the cessation. -+ -+ Moreover, your license from a particular copyright holder is -+reinstated permanently if the copyright holder notifies you of the -+violation by some reasonable means, this is the first time you have -+received notice of violation of this License (for any work) from that -+copyright holder, and you cure the violation prior to 30 days after -+your receipt of the notice. -+ -+ Termination of your rights under this section does not terminate the -+licenses of parties who have received copies or rights from you under -+this License. If your rights have been terminated and not permanently -+reinstated, you do not qualify to receive new licenses for the same -+material under section 10. -+ -+ 9. Acceptance Not Required for Having Copies. -+ -+ You are not required to accept this License in order to receive or -+run a copy of the Program. Ancillary propagation of a covered work -+occurring solely as a consequence of using peer-to-peer transmission -+to receive a copy likewise does not require acceptance. However, -+nothing other than this License grants you permission to propagate or -+modify any covered work. These actions infringe copyright if you do -+not accept this License. Therefore, by modifying or propagating a -+covered work, you indicate your acceptance of this License to do so. -+ -+ 10. Automatic Licensing of Downstream Recipients. -+ -+ Each time you convey a covered work, the recipient automatically -+receives a license from the original licensors, to run, modify and -+propagate that work, subject to this License. You are not responsible -+for enforcing compliance by third parties with this License. -+ -+ An "entity transaction" is a transaction transferring control of an -+organization, or substantially all assets of one, or subdividing an -+organization, or merging organizations. If propagation of a covered -+work results from an entity transaction, each party to that -+transaction who receives a copy of the work also receives whatever -+licenses to the work the party's predecessor in interest had or could -+give under the previous paragraph, plus a right to possession of the -+Corresponding Source of the work from the predecessor in interest, if -+the predecessor has it or can get it with reasonable efforts. -+ -+ You may not impose any further restrictions on the exercise of the -+rights granted or affirmed under this License. For example, you may -+not impose a license fee, royalty, or other charge for exercise of -+rights granted under this License, and you may not initiate litigation -+(including a cross-claim or counterclaim in a lawsuit) alleging that -+any patent claim is infringed by making, using, selling, offering for -+sale, or importing the Program or any portion of it. -+ -+ 11. Patents. -+ -+ A "contributor" is a copyright holder who authorizes use under this -+License of the Program or a work on which the Program is based. The -+work thus licensed is called the contributor's "contributor version". -+ -+ A contributor's "essential patent claims" are all patent claims -+owned or controlled by the contributor, whether already acquired or -+hereafter acquired, that would be infringed by some manner, permitted -+by this License, of making, using, or selling its contributor version, -+but do not include claims that would be infringed only as a -+consequence of further modification of the contributor version. For -+purposes of this definition, "control" includes the right to grant -+patent sublicenses in a manner consistent with the requirements of -+this License. -+ -+ Each contributor grants you a non-exclusive, worldwide, royalty-free -+patent license under the contributor's essential patent claims, to -+make, use, sell, offer for sale, import and otherwise run, modify and -+propagate the contents of its contributor version. -+ -+ In the following three paragraphs, a "patent license" is any express -+agreement or commitment, however denominated, not to enforce a patent -+(such as an express permission to practice a patent or covenant not to -+sue for patent infringement). To "grant" such a patent license to a -+party means to make such an agreement or commitment not to enforce a -+patent against the party. -+ -+ If you convey a covered work, knowingly relying on a patent license, -+and the Corresponding Source of the work is not available for anyone -+to copy, free of charge and under the terms of this License, through a -+publicly available network server or other readily accessible means, -+then you must either (1) cause the Corresponding Source to be so -+available, or (2) arrange to deprive yourself of the benefit of the -+patent license for this particular work, or (3) arrange, in a manner -+consistent with the requirements of this License, to extend the patent -+license to downstream recipients. "Knowingly relying" means you have -+actual knowledge that, but for the patent license, your conveying the -+covered work in a country, or your recipient's use of the covered work -+in a country, would infringe one or more identifiable patents in that -+country that you have reason to believe are valid. -+ -+ If, pursuant to or in connection with a single transaction or -+arrangement, you convey, or propagate by procuring conveyance of, a -+covered work, and grant a patent license to some of the parties -+receiving the covered work authorizing them to use, propagate, modify -+or convey a specific copy of the covered work, then the patent license -+you grant is automatically extended to all recipients of the covered -+work and works based on it. -+ -+ A patent license is "discriminatory" if it does not include within -+the scope of its coverage, prohibits the exercise of, or is -+conditioned on the non-exercise of one or more of the rights that are -+specifically granted under this License. You may not convey a covered -+work if you are a party to an arrangement with a third party that is -+in the business of distributing software, under which you make payment -+to the third party based on the extent of your activity of conveying -+the work, and under which the third party grants, to any of the -+parties who would receive the covered work from you, a discriminatory -+patent license (a) in connection with copies of the covered work -+conveyed by you (or copies made from those copies), or (b) primarily -+for and in connection with specific products or compilations that -+contain the covered work, unless you entered into that arrangement, -+or that patent license was granted, prior to 28 March 2007. -+ -+ Nothing in this License shall be construed as excluding or limiting -+any implied license or other defenses to infringement that may -+otherwise be available to you under applicable patent law. -+ -+ 12. No Surrender of Others' Freedom. -+ -+ If conditions are imposed on you (whether by court order, agreement or -+otherwise) that contradict the conditions of this License, they do not -+excuse you from the conditions of this License. If you cannot convey a -+covered work so as to satisfy simultaneously your obligations under this -+License and any other pertinent obligations, then as a consequence you may -+not convey it at all. For example, if you agree to terms that obligate you -+to collect a royalty for further conveying from those to whom you convey -+the Program, the only way you could satisfy both those terms and this -+License would be to refrain entirely from conveying the Program. -+ -+ 13. Use with the GNU Affero General Public License. -+ -+ Notwithstanding any other provision of this License, you have -+permission to link or combine any covered work with a work licensed -+under version 3 of the GNU Affero General Public License into a single -+combined work, and to convey the resulting work. The terms of this -+License will continue to apply to the part which is the covered work, -+but the special requirements of the GNU Affero General Public License, -+section 13, concerning interaction through a network will apply to the -+combination as such. -+ -+ 14. Revised Versions of this License. -+ -+ The Free Software Foundation may publish revised and/or new versions of -+the GNU General Public License from time to time. Such new versions will -+be similar in spirit to the present version, but may differ in detail to -+address new problems or concerns. -+ -+ Each version is given a distinguishing version number. If the -+Program specifies that a certain numbered version of the GNU General -+Public License "or any later version" applies to it, you have the -+option of following the terms and conditions either of that numbered -+version or of any later version published by the Free Software -+Foundation. If the Program does not specify a version number of the -+GNU General Public License, you may choose any version ever published -+by the Free Software Foundation. -+ -+ If the Program specifies that a proxy can decide which future -+versions of the GNU General Public License can be used, that proxy's -+public statement of acceptance of a version permanently authorizes you -+to choose that version for the Program. -+ -+ Later license versions may give you additional or different -+permissions. However, no additional obligations are imposed on any -+author or copyright holder as a result of your choosing to follow a -+later version. -+ -+ 15. Disclaimer of Warranty. -+ -+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -+ALL NECESSARY SERVICING, REPAIR OR CORRECTION. -+ -+ 16. Limitation of Liability. -+ -+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -+SUCH DAMAGES. -+ -+ 17. Interpretation of Sections 15 and 16. -+ -+ If the disclaimer of warranty and limitation of liability provided -+above cannot be given local legal effect according to their terms, -+reviewing courts shall apply local law that most closely approximates -+an absolute waiver of all civil liability in connection with the -+Program, unless a warranty or assumption of liability accompanies a -+copy of the Program in return for a fee. -+ -+ END OF TERMS AND CONDITIONS -+ -+ How to Apply These Terms to Your New Programs -+ -+ If you develop a new program, and you want it to be of the greatest -+possible use to the public, the best way to achieve this is to make it -+free software which everyone can redistribute and change under these terms. -+ -+ To do so, attach the following notices to the program. It is safest -+to attach them to the start of each source file to most effectively -+state the exclusion of warranty; and each file should have at least -+the "copyright" line and a pointer to where the full notice is found. -+ -+ -+ Copyright (C) -+ -+ This program is free software: you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by -+ the Free Software Foundation, either version 3 of the License, or -+ (at your option) any later version. -+ -+ This program is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ GNU General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License -+ along with this program. If not, see . -+ -+Also add information on how to contact you by electronic and paper mail. -+ -+ If the program does terminal interaction, make it output a short -+notice like this when it starts in an interactive mode: -+ -+ Copyright (C) -+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. -+ This is free software, and you are welcome to redistribute it -+ under certain conditions; type `show c' for details. -+ -+The hypothetical commands `show w' and `show c' should show the appropriate -+parts of the General Public License. Of course, your program's commands -+might be different; for a GUI interface, you would use an "about box". -+ -+ You should also get your employer (if you work as a programmer) or school, -+if any, to sign a "copyright disclaimer" for the program, if necessary. -+For more information on this, and how to apply and follow the GNU GPL, see -+. -+ -+ The GNU General Public License does not permit incorporating your program -+into proprietary programs. If your program is a subroutine library, you -+may consider it more useful to permit linking proprietary applications with -+the library. If this is what you want to do, use the GNU Lesser General -+Public License instead of this License. But first, please read -+. ---- magit-annex-1.7.1+git20200427.1.ef5dce62.orig/Makefile -+++ magit-annex-1.7.1+git20200427.1.ef5dce62/Makefile -@@ -2,7 +2,8 @@ - -include config.mk - - MAGIT_DIR ?= /dev/null --MAGIT_POPUP_DIR ?= /dev/null -+LV_DIR ?= /dev/null -+TRANSIENT_DIR ?= /dev/null - GHUB_DIR ?= /dev/null - GRAPHQL_DIR ?= /dev/null - TREEPY_DIR ?= /dev/null -@@ -12,7 +13,7 @@ EMACSBIN ?= emacs - - LOAD_PATH = -L $(DASH_DIR) -L $(WITH_EDITOR_DIR) -L $(GHUB_DIR) \ - -L $(GRAPHQL_DIR) -L $(TREEPY_DIR) \ -- -L $(MAGIT_POPUP_DIR) -L $(MAGIT_DIR) -+ -L $(LV_DIR) -L $(TRANSIENT_DIR) -L $(MAGIT_DIR) - BATCH = $(EMACSBIN) -Q --batch $(LOAD_PATH) - - all: magit-annex.elc magit-annex-autoloads.el ---- magit-annex-1.7.1+git20200427.1.ef5dce62.orig/NEWS -+++ magit-annex-1.7.1+git20200427.1.ef5dce62/NEWS -@@ -1,5 +1,31 @@ - Magit-annex NEWS -- history of user-visible changes -*- mode: org; -*- - -+* master (unreleased) -+ -+Magit-annex has been updated for the latest version of Magit and now -+requires version 3.0.0 or later. -+ -+** Interface changes -+ -+- To be compatible with the latest Magit, popups have been rewritten -+ as transient commands. -+ -+ A few key bindings for options now start with ~-~ rather than ~=~ -+ because, unlike magit-popup.el, transient.el doesn't require that -+ options start with ~=~. You can restore the previous bindings with -+ -+ #+begin_src emacs-lisp -+ (transient-suffix-put 'magit-annex-sync "-j" :key "=j") -+ (transient-suffix-put 'magit-annex-file-action "-j" :key "=j") -+ (transient-suffix-put 'magit-annex-file-action "-n" :key "=n") -+ (transient-suffix-put 'magit-annex-unused "-r" :key "=r") -+ #+end_src -+ -+- ~magit-annex-unused-log~ now immediately displays the log instead of -+ opening the log popup and is bound to ~C-c C-l~ in -+ ~magit-annex-unused-mode-map~ rather than shadowing the default -+ binding of ~magit-log~. -+ - * 1.7.0 - - Magit-annex has been updated for the latest version of Magit and now ---- magit-annex-1.7.1+git20200427.1.ef5dce62.orig/magit-annex-tests.el -+++ magit-annex-1.7.1+git20200427.1.ef5dce62/magit-annex-tests.el -@@ -1,12 +1,12 @@ - ;;; magit-annex-tests.el --- Tests for Magit-annex - --;; Copyright (C) 2014-2018 Kyle Meyer -+;; Copyright (C) 2014-2020 Kyle Meyer - ;; - ;; License: GPLv3 - - ;;; Code: - --(require 'cl) -+(require 'cl-lib) - (require 'dash) - (require 'ert) - -@@ -21,7 +21,7 @@ - - (defmacro magit-annex-tests-wait (&rest body) - (declare (indent 0) (debug t)) -- (let ((wait (gensym "magit-annex-tests-wait"))) -+ (let ((wait (cl-gensym "magit-annex-tests-wait"))) - `(prog1 ,(macroexp-progn body) - (let ((,wait t)) - (when magit-this-process -@@ -34,7 +34,7 @@ - (let ((start (float-time))) - (while (and magit-this-process ,wait) - (when (< 30 (time-to-seconds -- (subtract-time (float-time) start))) -+ (time-subtract (float-time) start))) - (error "Process shouldn't take this long")) - (sleep-for 0.005)))))))) - -@@ -98,10 +98,10 @@ - - (defun magit-annex-tests-modify-file (filename) - (with-temp-file (expand-file-name filename) -- (insert (symbol-name (gensym "content"))))) -+ (insert (symbol-name (cl-gensym "content"))))) - - (defun magit-annex-tests-should-have-section (type info) -- (magit-status default-directory) -+ (magit-status-setup-buffer default-directory) - (message (buffer-string)) - (should (--first (equal (oref it value) info) - (oref (magit-get-section `((,type) (status))) -@@ -140,7 +140,7 @@ - (magit-annex-add "annex-file") - (magit-call-git "commit" "-m" "annex commit") - (magit-annex-tests-wait -- (magit-annex-sync)) -+ (magit-annex-sync-all)) - (should (magit-git-lines "diff" "repo1/master")) - (should-not (magit-git-lines "diff" "synced/master")) - (should (magit-annex-present-files))) -@@ -156,7 +156,7 @@ - (magit-annex-add "annex-file") - (magit-call-git "commit" "-m" "annex commit") - (magit-annex-tests-wait -- (magit-annex-sync '("--content"))) -+ (magit-annex-sync-all '("--content"))) - (should (magit-git-lines "diff" "repo1/master")) - (should-not (magit-git-lines "diff" "synced/master")) - (should (magit-annex-present-files))) -@@ -175,7 +175,7 @@ - (magit-annex-add "annex-file") - (magit-call-git "commit" "-m" "annex commit") - (magit-annex-tests-wait -- (magit-annex-sync))) -+ (magit-annex-sync-all))) - (let ((default-directory repo1)) - (magit-annex-tests-wait - (magit-annex-merge)) -@@ -191,7 +191,7 @@ - (magit-annex-add "annex-file") - (magit-call-git "commit" "-m" "annex commit") - (magit-annex-tests-wait -- (magit-annex-sync))) -+ (magit-annex-sync-all))) - (let ((default-directory repo1)) - (magit-annex-tests-wait - (magit-annex-merge)) -@@ -209,7 +209,7 @@ - (magit-annex-add "subdir/annex-file") - (magit-call-git "commit" "-m" "subdir annex commit") - (magit-annex-tests-wait -- (magit-annex-sync))) -+ (magit-annex-sync-all))) - (let ((default-directory repo1)) - (magit-annex-tests-wait - (magit-annex-merge)) -@@ -227,7 +227,7 @@ - (magit-annex-add "annex-file") - (magit-call-git "commit" "-m" "annex commit") - (magit-annex-tests-wait -- (magit-annex-sync)) -+ (magit-annex-sync-all)) - (magit-annex-tests-wait - (magit-annex-drop-files '("annex-file") '("--force"))) - (should-not (magit-annex-present-files))))) -@@ -239,7 +239,7 @@ - (magit-annex-add "annex-file") - (magit-call-git "commit" "-m" "annex commit") - (magit-annex-tests-wait -- (magit-annex-sync)) -+ (magit-annex-sync-all)) - (magit-annex-tests-wait - (magit-annex-move-files '("annex-file") '("--to=repo1"))) - (should-not (magit-annex-present-files))) -@@ -256,7 +256,7 @@ - (magit-annex-add "annex-file") - (magit-call-git "commit" "-m" "annex commit") - (magit-annex-tests-wait -- (magit-annex-sync)) -+ (magit-annex-sync-all)) - (magit-annex-tests-wait - (magit-annex-copy-files '("annex-file") '("--to=repo1"))) - (should (equal (magit-annex-present-files) -@@ -267,17 +267,17 @@ - (should (equal (magit-annex-present-files) - '("annex-file")))))) - --;; (ert-deftest magit-annex-unlock-lock-files () --;; (magit-annex-with-test-repo --;; (magit-annex-tests-modify-file "annex-file") --;; (magit-annex-add "annex-file") --;; (magit-call-git "commit" "-m" "annex commit") --;; (should-not (magit-annex-unlocked-files)) --;; (magit-annex-unlock-files '("annex-file")) --;; (should (equal (magit-annex-unlocked-files) --;; '("annex-file"))) --;; (magit-annex-lock-files '("annex-file") '("--force")) --;; (should-not (magit-annex-unlocked-files)))) -+(ert-deftest magit-annex-unlock-lock-files () -+ (magit-annex-with-test-repo -+ (magit-annex-tests-modify-file "annex-file") -+ (magit-annex-add "annex-file") -+ (magit-call-git "commit" "-m" "annex commit") -+ (should-not (magit-annex-unlocked-files)) -+ (magit-annex-unlock-files '("annex-file")) -+ (should (equal (magit-annex-unlocked-files) -+ '("annex-file"))) -+ (magit-annex-lock-files '("annex-file") '("--force")) -+ (should-not (magit-annex-unlocked-files)))) - - (ert-deftest magit-annex-undo-files () - (magit-annex-with-test-repo ---- magit-annex-1.7.1+git20200427.1.ef5dce62.orig/magit-annex.el -+++ magit-annex-1.7.1+git20200427.1.ef5dce62/magit-annex.el -@@ -1,6 +1,6 @@ - ;;; magit-annex.el --- Control git-annex from Magit -*- lexical-binding: t; -*- - --;; Copyright (C) 2013-2018 Kyle Meyer -+;; Copyright (C) 2013-2020 Kyle Meyer - - ;; Author: Kyle Meyer - ;; RĂ©mi Vanicat -@@ -47,11 +47,11 @@ - ;; The above commands, which operate on paths, are also useful - ;; outside of Magit buffers, especially in Dired buffers. To make - ;; these commands easily accessible in Dired, you can add a binding --;; for `magit-annex-file-action-popup'. If you use git-annex.el, --;; you can put the popup under the same binding (@f) with -+;; for `magit-annex-file-action'. If you use git-annex.el, you can -+;; put the popup under the same binding (@f) with - ;; - ;; (define-key git-annex-dired-map "f" --;; #'magit-annex-file-action-popup) -+;; #'magit-annex-file-action) - ;; - ;; @u Browse unused files. - ;; @l List annex files. -@@ -84,7 +84,7 @@ - - (require 'cl-lib) - (require 'magit) --(require 'magit-popup) -+(require 'transient) - - - ;;; Variables -@@ -146,97 +146,133 @@ program used to open the unused file." - :type 'boolean) - - --;;; Popups -+;;; Transients -+;;;; Infix Arguments - --(magit-define-popup magit-annex-popup -- "Popup console for git-annex commands." -- 'magit-popups -+(define-infix-argument magit-annex:--jobs () -+ :description "Number of concurrent jobs" -+ :class 'transient-option -+ :key "-j" -+ :shortarg "-J" -+ :argument "--jobs=" -+ :reader 'transient-read-number-N+) -+ -+(define-infix-argument magit-annex:--fast () -+ :description "Fast variant of command" -+ :class 'transient-option -+ :key "-f" -+ :argument "--fast") -+ -+(define-infix-argument magit-annex:--force () -+ :description "Force unsafe actions" -+ :class 'transient-option -+ :key "-F" -+ :argument "--force") -+ -+(define-infix-argument magit-annex:--from () -+ :description "From remote" -+ :class 'transient-option -+ :key "=f" -+ :argument "--from=" -+ :reader 'magit-read-remote) -+ -+(define-infix-argument magit-annex:--to () -+ :description "To remote" -+ :class 'transient-option -+ :key "=t" -+ :argument "--to=" -+ :reader 'magit-read-remote) -+ -+;;;; Prefix commands -+ -+;;;###autoload (autoload 'magit-annex-dispatch "magit-annex" nil t) -+(define-transient-command magit-annex-dispatch () -+ "Invoke a git-annex command." - :man-page "git-annex" -- :actions '((?a "Add" magit-annex-add) -- (?@ "Add" magit-annex-add) -- (?A "Add all" magit-annex-add-all) -- (?f "Action on files" magit-annex-file-action-popup) -- (?G "Get all (auto)" magit-annex-get-all-auto) -- (?y "Sync" magit-annex-sync-popup) -- (?m "Merge" magit-annex-merge) -- (?u "Unused" magit-annex-unused-popup) -- (?l "List files" magit-annex-list-popup) -- (?: "Annex subcommand (from pwd)" magit-annex-command) -- (?! "Running" magit-annex-run-popup)) -- :max-action-columns 3) -- --(magit-define-popup magit-annex-file-action-popup -- "Popup console for git-annex file commands." -- 'magit-annex-popups -+ ["Actions" -+ [("a" "Add" magit-annex-add) -+ ("@" "Add" magit-annex-add) -+ ("A" "Add all" magit-annex-add-all)] -+ [("G" "Get all (auto)" magit-annex-get-all-auto) -+ ("m" "Merge annex branches" magit-annex-merge) -+ (":" "Annex subcommand (from pwd)" magit-annex-command)]] -+ ["Transient commands" -+ [("f" "Action on files" magit-annex-file-action) -+ ("y" "Sync" magit-annex-sync) -+ ("!" "Running" magit-annex-run-command)] -+ [("u" "Unused" magit-annex-unused) -+ ("l" "List files" magit-annex-list)]]) -+ -+(define-transient-command magit-annex-file-action () -+ "Invoke a git-annex file command." - :man-page "git-annex" -- :actions '((?g "Get" magit-annex-get-files) -- (?d "Drop" magit-annex-drop-files) -- (?c "Copy" magit-annex-copy-files) -- (?m "Move" magit-annex-move-files) -- (?l "Lock" magit-annex-lock-files) -- (?u "Unlock" magit-annex-unlock-files) nil nil -- (?U "Undo" magit-annex-undo-files)) -- :switches '("Switches" -- (?f "Fast" "--fast") -- (?F "Force" "--force") -- "Switches for get, drop, copy, and move" -- (?a "Auto" "--auto")) -- :options '("Options for get, drop, copy, and move" -- (?t "To remote" "--to=" magit-read-remote) -- (?f "From remote" "--from=" magit-read-remote) -- (?n "Number of copies" "--numcopies=") -- (?j "Number of jobs" "--jobs=")) -- :max-action-columns 4) -- --(magit-define-popup magit-annex-sync-popup -- "Popup console for git annex sync." -- 'magit-annex-popups -+ ["Arguments" -+ (magit-annex:--fast) -+ (magit-annex:--force)] -+ ["Arguments for get, drop, copy, and move" -+ ("-a" "Auto" "--auto") -+ (magit-annex:--from) -+ ("-n" "Desired number of copies" "--numcopies=" transient-read-number-N+) -+ (magit-annex:--jobs)] -+ ["Arguments for copy and move" -+ (magit-annex:--to)] -+ ["Arguments for get, drop, copy, and move" -+ ("=f" "From remote" "--from=" magit-read-remote)] -+ ["Actions" -+ [("g" "Get" magit-annex-get-files) -+ ("d" "Drop" magit-annex-drop-files) -+ ("c" "Copy" magit-annex-copy-files) -+ ("m" "Move" magit-annex-move-files)] -+ [("l" "Lock" magit-annex-lock-files) -+ ("u" "Unlock" magit-annex-unlock-files) -+ ("U" "Undo" magit-annex-undo-files)]]) -+ -+(define-transient-command magit-annex-sync () -+ "Invoke 'git annex sync'." - :man-page "git-annex-sync" -- :actions '((?y "Sync" magit-annex-sync) -- (?r "Sync remote" magit-annex-sync-remote)) -- :switches '((?c "Content" "--content") -- (?f "Fast" "--fast") -- (?F "Force" "--force") -- (?n "Don't commit local changes" "--no-commit")) -- :options '((?j "Number of jobs" "--jobs=")) -- :default-action 'magit-annex-sync) -- --(magit-define-popup magit-annex-unused-popup -- "Popup console for git annex unused." -- 'magit-annex-popups -+ ["Arguments" -+ (magit-annex:--fast) -+ (magit-annex:--force) -+ ("-c" "Transfer content" "--content") -+ ("-n" "Don't commit local changes" "--no-commit") -+ (magit-annex:--jobs)] -+ ["Actions" -+ ("y" "Sync all remotes" magit-annex-sync-all) -+ ("r" "Sync a remote" magit-annex-sync-remote)]) -+ -+(define-transient-command magit-annex-unused () -+ "Invoke 'git annex unused'." - :man-page "git-annex-unused" -- :actions '((?u "Unused" magit-annex-unused) -- (?r "Unused in reflog" magit-annex-unused-reflog)) -- :switches '((?f "Fast" "--fast")) -- :options '((?f "From remote" "--from=" magit-read-remote) -- (?r "Refspec" "--used-refspec=")) -- :default-action 'magit-annex-unused) -- --(magit-define-popup magit-annex-list-popup -- "Popup console for git annex list." -- 'magit-annex-popups -+ ["Arguments" -+ (magit-annex:--fast) -+ (magit-annex:--from) -+ ("-r" "Refspec" "--used-refspec=")] -+ ["Actions" -+ ("u" "Unused" magit-annex-unused-in-refs) -+ ("r" "Unused in reflog" magit-annex-unused-in-reflog)]) -+ -+(define-transient-command magit-annex-list () -+ "Invoke 'git annex list'." - :man-page "git-annex-list" -- :actions '((?l "List files" magit-annex-list-files) -- (?d "List files in directory" magit-annex-list-dir-files)) -- :switches '((?a "All repos" "--allrepos")) -- :default-action 'magit-annex-list-files) -- --(magit-define-popup magit-annex-run-popup -- "Popup console for running git-annex commands." -- 'magit-annex-popups -+ ["Arguments" -+ ("-a" "All repos" "--allrepos")] -+ ["Actions" -+ ("l" "List files" magit-annex-list-files) -+ ("d" "List files in directory" magit-annex-list-dir-files)]) -+ -+(define-transient-command magit-annex-run-command () -+ "Run an arbitrary git-annex command." - :man-page "git-annex" -- :actions '((?! "Annex subcommand (from root)" magit-annex-command-topdir) -- (?: "Annex subcommand (from pwd)" magit-annex-command))) -+ ["Actions" -+ ("!" "Annex subcommand (from root)" magit-annex-command-topdir) -+ (":" "Annex subcommand (from pwd)" magit-annex-command)]) - - ;;;###autoload - (eval-after-load 'magit - '(progn -- (require 'magit-popup) -- (when (boundp 'magit-dispatch-popup) -- (define-key magit-mode-map "@" 'magit-annex-popup-or-init) -- (magit-define-popup-action 'magit-dispatch-popup -- ?@ "Annex" 'magit-annex-popup-or-init ?!)))) -- -+ (define-key magit-mode-map "@" 'magit-annex-dispatch-or-init) -+ (transient-append-suffix 'magit-dispatch "%" -+ '("@" "Annex" magit-annex-dispatch-or-init)))) - - - ;;; Process calls -@@ -257,7 +293,7 @@ information." - (magit-run-git-async "annex" magit-annex-global-arguments args)) - - (defun magit-annex-command (command) -- "Execute COMMAND asynchonously, displaying output. -+ "Execute COMMAND asynchronously, displaying output. - This is like `magit-git-command', but \"git annex \" rather than - \"git \" is used as the initial input." - (interactive (list (magit-read-shell-command nil "git annex "))) -@@ -274,12 +310,12 @@ rather than \"git \" is used as the init - ;;; Initialization - - ;;;###autoload --(defun magit-annex-popup-or-init () -- "Call Magit-annex popup or offer to initialize non-annex repo." -+(defun magit-annex-dispatch-or-init () -+ "Call `magit-annex-dispatch' or offer to initialize non-annex repo." - (interactive) - (cond - ((magit-annex-inside-annexdir-p) -- (magit-annex-popup)) -+ (magit-annex-dispatch)) - ((y-or-n-p (format "No git-annex repository in %s. Initialize one? " - default-directory)) - (call-interactively 'magit-annex-init)))) -@@ -301,6 +337,9 @@ rather than \"git \" is used as the init - "Add the item at point to annex. - With a prefix argument, prompt for FILE. - \('git annex add')" -+ ;; NEEDSWORK: Use of `magit-annex-unlocked-files' doesn't make sense -+ ;; for v6+ repos. -+ ;; - ;; Modified from `magit-stage'. - (interactive - (when current-prefix-arg -@@ -339,7 +378,10 @@ With a prefix argument, prompt for FILE. - - ;;; Updating - --(defun magit-annex-sync (&optional args) -+(defun magit-annex-sync-arguments () -+ (transient-args 'magit-annex-sync)) -+ -+(defun magit-annex-sync-all (&optional args) - "Sync git-annex. - \('git annex sync [ARGS]')" - (interactive (list (magit-annex-sync-arguments))) -@@ -361,6 +403,31 @@ With a prefix argument, prompt for FILE. - - ;;; Managing content - -+(defun magit-annex-files () -+ "Return all annex files." -+ (magit-git-items "annex" "find" "--print0" "--include" "*")) -+ -+(defun magit-annex-present-files () -+ "Return annex files that are present in current repo." -+ (magit-git-items "annex" "find" "--print0")) -+ -+(defun magit-annex-absent-files () -+ "Return annex files that are absent in current repo." -+ (magit-git-items "annex" "find" "--print0" "--not" "--in=here")) -+ -+(defun magit-annex-unlocked-files () -+ "Return unlocked annex files." -+ (with-temp-buffer -+ (let ((exit (magit-process-file -+ magit-git-executable nil t nil -+ "annex" "find" "--print0" "--unlocked"))) -+ (if (zerop exit) -+ (split-string (buffer-string) "\0" t) -+ ;; `find --unlocked' isn't available until git-annex -+ ;; 7.20191009. Fall back to the old approach that is -+ ;; compatible with v5 repos only. -+ (magit-git-items "diff-files" "-z" "--diff-filter=T" "--name-only"))))) -+ - (defun magit-annex-get-all-auto () - "Run `git annex get --auto'." - (interactive) -@@ -406,77 +473,96 @@ With a prefix argument, prompt for FILE. - (dired-relist-file (expand-file-name file))) - (goto-char here)))) - --(defmacro magit-annex-files-action (command &optional limit no-async) -- (declare (indent defun) (debug t)) -- `(defun ,(intern (concat "magit-annex-" command "-files")) -- (files &optional args) -- ,(format "%s FILES.\n\n git annex %s [ARGS] [FILE...]" -- (capitalize command) command) -- (interactive -- (list -- (let* ((files (or (mapcar #'cdr (magit-region-values 'annex-list-file)) -- (when-let ((file (cdr (magit-section-value-if -- 'annex-list-file)))) -- (list file)) -- (and (derived-mode-p 'dired-mode) -- (dired-get-marked-files t)))) -- (default (mapconcat #'identity files ","))) -- (magit-annex-read-files -- (concat ,(capitalize command) -- " file,s" -- (and files (format " (%s)" default)) -- ": ") -- ,limit -- default)) -- (magit-annex-file-action-arguments))) -- (,(if no-async 'magit-annex-run 'magit-annex-run-async) -- ,command args files) -- (when (derived-mode-p 'dired-mode) -- (if ,no-async -- (magit-annex--dired-relist files) -- (set-process-sentinel -- magit-this-process -- (lambda (process event) -- (magit-process-sentinel process event) -- (when (eq (process-status process) 'exit) -- (magit-annex--dired-relist files))))) -+(defun magit-annex--dired-relist-async (files) -+ (when (derived-mode-p 'dired-mode) -+ (set-process-sentinel -+ magit-this-process -+ (lambda (process event) -+ (magit-process-sentinel process event) -+ (when (eq (process-status process) 'exit) -+ (magit-annex--dired-relist files)))) - (let ((magit-display-buffer-noselect t)) -- (magit-process-buffer))))) -+ (magit-process-buffer)))) - --(magit-annex-files-action "get" 'absent) --(magit-annex-files-action "drop" -- (and (not (magit-annex-from-in-options-p)) 'present)) --(magit-annex-files-action "copy" -- (and (not (magit-annex-from-in-options-p)) 'present)) --(magit-annex-files-action "move" -- (and (not (magit-annex-from-in-options-p)) 'present)) --(magit-annex-files-action "unlock" 'present t) --(magit-annex-files-action "lock" 'unlocked t) -- --(magit-annex-files-action "undo" nil t) -- --(defun magit-annex-from-in-options-p () -- (cl-some (lambda (it) (string-match-p "--from=" it)) -- magit-current-popup-args)) -+(defun magit-annex-file-action-arguments () -+ (transient-args 'magit-annex-file-action)) - --(defun magit-annex-files () -- "Return all annex files." -- (magit-git-items "annex" "find" "--print0" "--include" "*")) -- --(defun magit-annex-present-files () -- "Return annex files that are present in current repo." -- (magit-git-items "annex" "find" "--print0")) -- --(defun magit-annex-absent-files () -- "Return annex files that are absent in current repo." -- (magit-git-items "annex" "find" "--print0" "--not" "--in=here")) -- --(defun magit-annex-unlocked-files () -- "Return unlocked annex files." -- (magit-git-items "diff-files" "-z" "--diff-filter=T" "--name-only")) -+(defun magit-annex--file-arguments (&optional limit-to unless-from) -+ "Return interactive arguments for file-based commands. -+LIMIT-TO is interpreted by `magit-annex-read-files'. If -+UNLESS-FROM is non-nil, pass LIMIT-TO only if the command -+arguments don't include --from." -+ (let* ((args (magit-annex-file-action-arguments)) -+ (files (or (mapcar #'cdr (magit-region-values 'annex-list-file)) -+ (when-let ((file (cdr (magit-section-value-if -+ 'annex-list-file)))) -+ (list file)) -+ (and (derived-mode-p 'dired-mode) -+ (dired-get-marked-files t)))) -+ (default (mapconcat #'identity files ","))) -+ (list -+ (magit-annex-read-files -+ (concat "File,s" -+ (and files (format " (%s)" default)) -+ ": ") -+ (and (or (not unless-from) -+ (cl-notany (lambda (it) (string-match-p "--from=" it)) -+ args)) -+ limit-to) -+ default) -+ args))) -+ -+(defun magit-annex-get-files (files &optional args) -+ "Get annex files. -+\('git annex get [ARGS] -- FILES)" -+ (interactive (magit-annex--file-arguments 'absent)) -+ (magit-annex-run-async "get" args "--" files) -+ (magit-annex--dired-relist-async files)) -+ -+(defun magit-annex-drop-files (files &optional args) -+ "Drop annex files. -+\('git annex drop [ARGS] -- FILES)" -+ (interactive (magit-annex--file-arguments 'present t)) -+ (magit-annex-run-async "drop" args "--" files) -+ (magit-annex--dired-relist-async files)) -+ -+(defun magit-annex-copy-files (files &optional args) -+ "Copy annex files. -+\('git annex copy [ARGS] -- FILES)" -+ (interactive (magit-annex--file-arguments 'present t)) -+ (magit-annex-run-async "copy" args "--" files) -+ (magit-annex--dired-relist-async files)) -+ -+(defun magit-annex-move-files (files &optional args) -+ "Move annex files. -+\('git annex move [ARGS] -- FILES)" -+ (interactive (magit-annex--file-arguments 'present t)) -+ (magit-annex-run-async "move" args "--" files) -+ (magit-annex--dired-relist-async files)) -+ -+(defun magit-annex-unlock-files (files &optional args) -+ "Unlock annex files. -+\('git annex unlock [ARGS] -- FILES)" -+ (interactive (magit-annex--file-arguments 'present)) -+ (magit-annex-run "unlock" args "--" files) -+ (magit-annex--dired-relist files)) -+ -+(defun magit-annex-lock-files (files &optional args) -+ "Lock annex files. -+\('git annex lock [ARGS] -- FILES)" -+ (interactive (magit-annex--file-arguments 'unlocked)) -+ (magit-annex-run "lock" args "--" files) -+ (magit-annex--dired-relist files)) -+ -+(defun magit-annex-undo-files (files &optional args) -+ "Undo annex files. -+\('git annex undo [ARGS] -- FILES)" -+ (interactive (magit-annex--file-arguments)) -+ (magit-annex-run "undo" args "--" files) -+ (magit-annex--dired-relist files)) - - --;; Unused mode -+;;; Unused mode - - (defun magit-annex-unused-add () - "Add annex unused data back into the index." -@@ -504,31 +590,39 @@ With prefix argument FORCE, pass \"--for - '("--force" "all") - "all"))))) - --(defun magit-annex-unused-log-popup () -+(defun magit-annex-unused-log () - "Display log for unused file. - --This is like `magit-log-popup', but, if point is on an unused --file, the unused file's key is automatically supplied as the --value for the '-S' flag. The '--stat' flag is also enabled if --`magit-annex-unused-stat-argument' is non-nil. -+Show a log where the key for the unused file at point is supplied -+as the value for the '-S' flag. The '--stat' flag is also -+enabled if `magit-annex-unused-stat-argument' is non-nil. - - \('git log [--stat] -S')" - (interactive) -- (let ((section (magit-current-section))) -- (if (not (eq (oref section type) 'unused-data)) -- (call-interactively #'magit-log-popup) -- (let ((magit-log-arguments -- `(,(concat "-S" (cdr (oref section value))) -- ,(and magit-annex-unused-stat-argument "--stat") -- ,@(cl-remove-if -- (lambda (x) (string-prefix-p "-S" x)) -- (-if-let (buffer (magit-mode-get-buffer 'magit-log-mode)) -- (with-current-buffer buffer -- (magit-popup-import-file-args (nth 1 magit-refresh-args) -- (nth 2 magit-refresh-args))) -- (default-value 'magit-log-arguments))))) -- (magit-popup-use-prefix-argument 'default)) -- (magit-invoke-popup 'magit-log-popup nil nil))))) -+ (magit-section-case -+ (unused-data -+ (let ((args (car (magit-log-arguments)))) -+ (when (and magit-annex-unused-stat-argument -+ (not (member "--stat" args))) -+ (push "--stat" args)) -+ (funcall -+ (cond -+ ;; `magit-git-log' was renamed to `magit-log-setup-buffer' in -+ ;; v2.90.1-480-g249ce0eec. This is a temporary compatibility -+ ;; kludge for Guix, whose current version of Magit is from a -+ ;; bit before that (v2.90.1-460-gc761d28d4). -+ ((fboundp 'magit-log-setup-buffer) -+ #'magit-log-setup-buffer) -+ ((fboundp 'magit-git-log) -+ #'magit-git-log) -+ (t (error "bug: should never get here"))) -+ (list (or (magit-get-current-branch) "HEAD")) -+ (cons (concat "-S" (oref it value)) -+ (cl-remove-if (lambda (x) (string-prefix-p "-S" x)) -+ args)) -+ nil))) -+ (t -+ (user-error "No unused file at point")))) - - (defun magit-annex--file-name-from-key (key) - (magit-git-string "annex" "contentlocation" key)) -@@ -563,7 +657,7 @@ the file within Emacs." - (define-key map (kbd "RET") #'magit-annex-unused-open) - (define-key map "s" #'magit-annex-unused-add) - (define-key map "k" #'magit-annex-unused-drop) -- (define-key map "l" #'magit-annex-unused-log-popup) -+ (define-key map (kbd "C-c C-l") #'magit-annex-unused-log) - map) - "Keymap for `magit-annex-unused-mode'.") - -@@ -573,40 +667,51 @@ the file within Emacs." - \\\ - Type \\[magit-annex-unused-drop] to drop data at point. - Type \\[magit-annex-unused-add] to add the unused data back into the index. --Type \\[magit-annex-unused-log-popup] to show commit log for the unused file. -+Type \\[magit-annex-unused-log] to show commit log for the unused file. - Type \\[magit-annex-unused-open] to open the file. - \n\\{magit-annex-unused-mode-map}" - :group 'magit-modes - (hack-dir-local-variables-non-file-buffer)) - -+(defun magit-annex-unused-arguments () -+ (transient-args 'magit-annex-unused)) -+ - ;;;###autoload --(defun magit-annex-unused (&optional args) -- "Show unused data. -+(defun magit-annex-unused-in-refs (&optional args) -+ "Show annex files not used in any branches or tags. -+These files are not pointed by the tips of the repositories -+branches or tags. - \('git annex unused [ARGS]')" - (interactive (list (magit-annex-unused-arguments))) -- (magit-mode-setup #'magit-annex-unused-mode args)) -+ (magit-annex-unused-setup-buffer args)) - - ;;;###autoload --(defun magit-annex-unused-reflog (&optional args) -- "Show unused data. -+(defun magit-annex-unused-in-reflog (&optional args) -+ "Show annex files not used in any of the revisions in HEAD's reflog. - \('git annex unused --used-refspec=reflog [ARGS]')" - (interactive (list (magit-annex-unused-arguments))) - (if (cl-some (lambda (x) (string-prefix-p "--used-refspec=" x)) - args) - (user-error "Flag --used-refspec was given more than once") - (setq args (cons "--used-refspec=reflog" args))) -- (magit-mode-setup #'magit-annex-unused-mode args)) -+ (magit-annex-unused-setup-buffer args)) -+ -+(defun magit-annex-unused-setup-buffer (args) -+ (magit-setup-buffer #'magit-annex-unused-mode nil -+ (magit-buffer-arguments args))) - --(defun magit-annex-unused-refresh-buffer (args) -+(defun magit-annex-unused-refresh-buffer () - "Refresh the content of the unused buffer." - (magit-insert-section (unused) - (magit-insert-heading - (concat "Unused files" -- (and args -- (concat " (" (mapconcat #'identity args " ") ")")) -+ (and magit-buffer-arguments -+ (concat " (" -+ (mapconcat #'identity magit-buffer-arguments " ") -+ ")")) - ":")) - (magit-git-wash #'magit-annex-unused-wash -- "annex" "unused" args))) -+ "annex" "unused" magit-buffer-arguments))) - - (defun magit-annex-unused-wash (&rest _) - "Convert the output of git-annex unused into Magit section." -@@ -630,7 +735,7 @@ Type \\[magit-annex-unused-open] to open - (let ((num (match-string 1)) - (key (match-string 2))) - (delete-region (match-beginning 0) (match-end 0)) -- (magit-insert-section (unused-data (cons num key)) -+ (magit-insert-section (unused-data key) - (insert (format " %-3s %s" num key)) - (forward-line))))) - -@@ -647,26 +752,31 @@ Type \\[magit-annex-unused-open] to open - (defvar magit-annex-list-mode-map - (let ((map (make-sparse-keymap))) - (set-keymap-parent map magit-mode-map) -- (define-key map "f" #'magit-annex-file-action-popup) -+ (define-key map "f" #'magit-annex-file-action) - map) - "Keymap for `magit-annex-list-mode'.") - -+(defvar-local magit-annex-buffer-directory nil) -+ - (define-derived-mode magit-annex-list-mode magit-mode "Magit-annex List" - "Mode for viewing on `git annex list' output. - - \\\ --Type \\[magit-annex-file-action-popup] to perform git-annex action -+Type \\[magit-annex-file-action] to perform git-annex action - on the files selected by the region (if active) or the file at point. - \n\\{magit-annex-list-mode-map}" - :group 'magit-modes - (hack-dir-local-variables-non-file-buffer)) - -+(defun magit-annex-list-arguments () -+ (transient-args 'magit-annex-list)) -+ - ;;;###autoload - (defun magit-annex-list-files (&optional args) - "List annex files. - \('git annex list [ARGS]')" - (interactive (magit-annex-list-arguments)) -- (magit-mode-setup #'magit-annex-list-mode nil args)) -+ (magit-annex-list-setup-buffer nil args)) - - ;;;###autoload - (defun magit-annex-list-dir-files (directory &optional args) -@@ -678,9 +788,14 @@ on the files selected by the region (if - nil nil t) - (magit-toplevel))) - (magit-annex-list-arguments))) -- (magit-mode-setup #'magit-annex-list-mode directory args)) -+ (magit-annex-list-setup-buffer directory args)) -+ -+(defun magit-annex-list-setup-buffer (directory args) -+ (magit-setup-buffer #'magit-annex-list-mode nil -+ (magit-annex-buffer-directory directory) -+ (magit-buffer-arguments args))) - --(defun magit-annex-list-refresh-buffer (&rest _) -+(defun magit-annex-list-refresh-buffer () - "Refresh content of a `magit-annex-list-mode' buffer." - (magit-insert-section (annex-list-buffer) - (run-hooks 'magit-annex-list-sections-hook))) -@@ -691,14 +806,14 @@ on the files selected by the region (if - - (defun magit-annex-list-insert-files () - "Insert output of `git annex list'." -- (let* ((subdir (car magit-refresh-args)) -+ (let* ((subdir magit-annex-buffer-directory) - (heading (if subdir - (format "Annex files in %s:" subdir) - "Annex files:"))) - (magit-insert-section (annex-list-buffer) - (magit-insert-heading heading) - (magit-git-wash #'magit-annex-list-wash -- "annex" "list" magit-refresh-args)))) -+ "annex" "list" magit-annex-buffer-directory magit-buffer-arguments)))) - - (defconst magit-annex-list-line-re "\\([_X]+\\) \\(.*\\)$") - diff --git a/debian/patches/series b/debian/patches/series deleted file mode 100644 index 7bb8252..0000000 --- a/debian/patches/series +++ /dev/null @@ -1 +0,0 @@ -debian-changes -- cgit v1.2.3