From 96b4e2a6ff451a8e46ad649b14b54d406fe63e89 Mon Sep 17 00:00:00 2001 From: Andreas Gerler Date: Thu, 18 Jan 2018 16:57:26 +0100 Subject: [PATCH] update magit. Signed-off-by: Andreas Gerler --- elpa/magit-20171208.618/COPYING | 676 ------------------ elpa/magit-20171208.618/magit.info | 179 ----- .../AUTHORS.md | 6 + .../dir | 0 .../git-rebase.el | 2 +- .../magit-apply.el | 61 +- .../magit-autoloads.el | 130 ++-- .../magit-autorevert.el | 2 +- .../magit-bisect.el | 2 +- .../magit-blame.el | 2 +- .../magit-bookmark.el | 22 +- .../magit-branch.el | 90 ++- .../magit-collab.el | 48 +- .../magit-commit.el | 2 +- .../magit-core.el | 2 +- .../magit-diff.el | 294 +++++--- .../magit-ediff.el | 6 +- .../magit-extras.el | 4 +- .../magit-files.el | 2 +- .../magit-git.el | 36 +- .../magit-imenu.el | 28 +- .../magit-log.el | 35 +- .../magit-margin.el | 2 +- .../magit-mode.el | 89 ++- .../magit-notes.el | 2 +- .../magit-obsolete.el | 12 +- .../magit-pkg.el | 2 +- .../magit-process.el | 244 +++++-- .../magit-refs.el | 55 +- .../magit-remote.el | 103 ++- .../magit-repos.el | 2 +- .../magit-section.el | 403 ++++++----- .../magit-sequence.el | 2 +- .../magit-stash.el | 5 +- .../magit-status.el | 2 +- .../magit-submodule.el | 25 +- .../magit-subtree.el | 2 +- .../magit-utils.el | 17 +- .../magit-wip.el | 2 +- .../magit-worktree.el | 2 +- .../magit.el | 6 +- elpa/magit-20180118.313/magit.info | 180 +++++ .../magit.info-1 | 178 +++-- .../magit.info-2 | 106 ++- 44 files changed, 1555 insertions(+), 1515 deletions(-) delete mode 100644 elpa/magit-20171208.618/COPYING delete mode 100644 elpa/magit-20171208.618/magit.info rename elpa/{magit-20171208.618 => magit-20180118.313}/AUTHORS.md (97%) rename elpa/{magit-20171208.618 => magit-20180118.313}/dir (100%) rename elpa/{magit-20171208.618 => magit-20180118.313}/git-rebase.el (99%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-apply.el (93%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-autoloads.el (95%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-autorevert.el (99%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-bisect.el (99%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-blame.el (99%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-bookmark.el (95%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-branch.el (91%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-collab.el (73%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-commit.el (99%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-core.el (98%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-diff.el (92%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-ediff.el (99%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-extras.el (99%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-files.el (99%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-git.el (98%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-imenu.el (90%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-log.el (98%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-margin.el (99%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-mode.el (93%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-notes.el (99%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-obsolete.el (84%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-pkg.el (79%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-process.el (80%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-refs.el (92%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-remote.el (88%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-repos.el (99%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-section.el (80%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-sequence.el (99%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-stash.el (99%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-status.el (99%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-submodule.el (95%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-subtree.el (98%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-utils.el (98%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-wip.el (99%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit-worktree.el (99%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit.el (99%) create mode 100644 elpa/magit-20180118.313/magit.info rename elpa/{magit-20171208.618 => magit-20180118.313}/magit.info-1 (98%) rename elpa/{magit-20171208.618 => magit-20180118.313}/magit.info-2 (98%) diff --git a/elpa/magit-20171208.618/COPYING b/elpa/magit-20171208.618/COPYING deleted file mode 100644 index 44325404..00000000 --- a/elpa/magit-20171208.618/COPYING +++ /dev/null @@ -1,676 +0,0 @@ - - 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 -. - diff --git a/elpa/magit-20171208.618/magit.info b/elpa/magit-20171208.618/magit.info deleted file mode 100644 index d42b0eea..00000000 --- a/elpa/magit-20171208.618/magit.info +++ /dev/null @@ -1,179 +0,0 @@ -This is magit.info, produced by makeinfo version 5.2 from magit.texi. - - Copyright (C) 2015-2017 Jonas Bernoulli - - You can redistribute this document 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 document 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. -INFO-DIR-SECTION Emacs -START-INFO-DIR-ENTRY -* Magit: (magit). Using Git from Emacs with Magit. -END-INFO-DIR-ENTRY - - -Indirect: -magit.info-1: 752 -magit.info-2: 300804 - -Tag Table: -(Indirect) -Node: Top752 -Node: Introduction6085 -Node: Installation10808 -Node: Installing from an Elpa Archive11148 -Node: Installing from the Git Repository12251 -Node: Post-Installation Tasks14945 -Node: Getting Started16230 -Node: Interface Concepts21577 -Node: Modes and Buffers21909 -Node: Switching Buffers23654 -Node: Naming Buffers28195 -Node: Quitting Windows31204 -Node: Automatic Refreshing of Magit Buffers32836 -Node: Automatic Saving of File-Visiting Buffers35604 -Node: Automatic Reverting of File-Visiting Buffers36789 -Node: Risk of Reverting Automatically41785 -Node: Sections44168 -Node: Section Movement45109 -Node: Section Visibility49036 -Node: Section Hooks52511 -Node: Section Types and Values54792 -Node: Section Options56062 -Node: Popup Buffers and Prefix Commands56534 -Node: Completion Confirmation and the Selection58915 -Node: Action Confirmation59352 -Node: Completion and Confirmation65592 -Node: The Selection68778 -Node: The hunk-internal region71677 -Node: Support for Completion Frameworks72766 -Node: Additional Completion Options77582 -Node: Running Git78181 -Node: Viewing Git Output78431 -Node: Running Git Manually79600 -Node: Git Executable82002 -Node: Global Git Arguments84284 -Node: Inspecting85090 -Node: Status Buffer86237 -Node: Status Sections89150 -Node: Status Header Sections93665 -Node: Status Module Sections96295 -Node: Status Options98796 -Node: Repository List100550 -Node: Logging102708 -Node: Refreshing Logs105155 -Node: Log Buffer106540 -Node: Log Margin110011 -Node: Select from Log112651 -Node: Reflog114755 -Node: Cherries116272 -Node: Diffing117999 -Node: Refreshing Diffs120946 -Node: Diff Buffer124437 -Node: Diff Options127022 -Node: Revision Buffer130393 -Node: Ediffing132931 -Node: References Buffer136527 -Node: References Sections143827 -Node: Bisecting144688 -Node: Visiting Blobs146426 -Node: Blaming146935 -Node: Manipulating151723 -Node: Repository Setup152039 -Node: Staging and Unstaging153079 -Node: Staging from File-Visiting Buffers157160 -Node: Applying158328 -Node: Committing160221 -Node: Initiating a Commit160804 -Node: Editing Commit Messages164115 -Node: Branching174511 -Node: The Two Remotes174711 -Node: The Branch Popup177328 -Node: The Branch Config Popup194175 -Node: Merging200079 -Node: Resolving Conflicts202246 -Node: Rebasing207247 -Node: Editing Rebase Sequences211403 -Node: Information About In-Progress Rebase214433 -Ref: Information About In-Progress Rebase-Footnote-1223181 -Node: Cherry Picking223777 -Node: Reverting225515 -Node: Resetting226878 -Node: Stashing228295 -Node: Transferring232807 -Node: Remotes233045 -Node: The Remote Popup233201 -Node: The Remote Config Popup235578 -Node: Fetching237230 -Node: Pulling238586 -Node: Pushing239422 -Node: Creating and Sending Patches244157 -Node: Applying Patches244994 -Node: Miscellaneous246580 -Node: Tagging246883 -Node: Notes247667 -Node: Submodules249978 -Node: Listing Submodules250192 -Node: Submodule Popup252069 -Node: Subtree253354 -Node: Common Commands254601 -Node: Wip Modes256347 -Node: Minor Mode for Buffers Visiting Files263144 -Node: Minor Mode for Buffers Visiting Blobs266493 -Node: Customizing267306 -Node: Per-Repository Configuration268974 -Node: Essential Settings270621 -Node: Safety270945 -Node: Performance272710 -Node: Microsoft Windows Performance279558 -Node: MacOS Performance280749 -Ref: MacOS Performance-Footnote-1281985 -Ref: MacOS Performance-Footnote-2282067 -Ref: MacOS Performance-Footnote-3282127 -Node: Plumbing282293 -Node: Calling Git283116 -Node: Getting a Value from Git284641 -Node: Calling Git for Effect287727 -Node: Section Plumbing294245 -Node: Creating Sections294473 -Node: Section Selection298372 -Node: Matching Sections300804 -Node: Refreshing Buffers306237 -Node: Conventions309372 -Node: Theming Faces309564 -Node: FAQ317679 -Node: FAQ - How to …?318121 -Node: How to show git's output?318485 -Node: How to install the gitman info manual?319239 -Node: How to show diffs for gpg-encrypted files?320209 -Node: How does branching and pushing work?320805 -Node: Can Magit be used as ‘ediff-version-control-package’?321174 -Node: FAQ - Issues and Errors323169 -Node: Magit is slow323973 -Node: I changed several thousand files at once and now Magit is unusable324187 -Node: I am having problems committing324916 -Node: I am using MS Windows and cannot push with Magit325397 -Node: I am using OS X and SOMETHING works in shell but not in Magit326014 -Node: Diffs contain control sequences326820 -Node: Expanding a file to show the diff causes it to disappear327894 -Node: Point is wrong in the ‘COMMIT_EDITMSG’ buffer328451 -Node: The mode-line information isn't always up-to-date329503 -Node: Emacs 245 hangs when loading Magit330570 -Node: A branch and tag sharing the same name breaks SOMETHING331184 -Node: Debugging Tools331990 -Node: Keystroke Index333725 -Node: Command Index363659 -Node: Function Index395121 -Node: Variable Index409097 - -End Tag Table - - -Local Variables: -coding: utf-8 -End: diff --git a/elpa/magit-20171208.618/AUTHORS.md b/elpa/magit-20180118.313/AUTHORS.md similarity index 97% rename from elpa/magit-20171208.618/AUTHORS.md rename to elpa/magit-20180118.313/AUTHORS.md index f676ae71..9ca756e3 100644 --- a/elpa/magit-20171208.618/AUTHORS.md +++ b/elpa/magit-20180118.313/AUTHORS.md @@ -78,6 +78,7 @@ Contributors - Chillar Anand - Chris Bernard - Chris Done +- Chris LaRose - Chris Moore - Chris Ring - Chris Shoemaker @@ -92,9 +93,11 @@ Contributors - Daniel Brockman - Daniel Farina - Daniel Hackney +- Daniel Mai - Dan LaManna - Dato Simó - David Abrahams +- David Ellison - David Hull - David L. Rager - David Wallin @@ -113,6 +116,7 @@ Contributors - Feng Li - Florian Ragwitz - Fritz Grabo +- Fritz Stelzer - Geoff Shannon - George Kadianakis - Graham Clark @@ -176,6 +180,7 @@ Contributors - Mark Hepburn - Mark Karpov - Mark Oteiza +- Matthew Fluet - Matthieu Hauglustaine - Matus Goljer - Michael Fogleman @@ -200,6 +205,7 @@ Contributors - Noam Postavsky - Ole Arndt - Oleh Krehel +- Orivej Desh - Óscar Fuentes - Paul Stadig - Pavel Holejsovsky diff --git a/elpa/magit-20171208.618/dir b/elpa/magit-20180118.313/dir similarity index 100% rename from elpa/magit-20171208.618/dir rename to elpa/magit-20180118.313/dir diff --git a/elpa/magit-20171208.618/git-rebase.el b/elpa/magit-20180118.313/git-rebase.el similarity index 99% rename from elpa/magit-20171208.618/git-rebase.el rename to elpa/magit-20180118.313/git-rebase.el index 1de18252..dd2549ca 100644 --- a/elpa/magit-20171208.618/git-rebase.el +++ b/elpa/magit-20180118.313/git-rebase.el @@ -1,6 +1,6 @@ ;;; git-rebase.el --- Edit Git rebase files -*- lexical-binding: t -*- -;; Copyright (C) 2010-2017 The Magit Project Contributors +;; Copyright (C) 2010-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. diff --git a/elpa/magit-20171208.618/magit-apply.el b/elpa/magit-20180118.313/magit-apply.el similarity index 93% rename from elpa/magit-20171208.618/magit-apply.el rename to elpa/magit-20180118.313/magit-apply.el index 1a272f62..027d26ff 100644 --- a/elpa/magit-20171208.618/magit-apply.el +++ b/elpa/magit-20180118.313/magit-apply.el @@ -1,6 +1,6 @@ ;;; magit-apply.el --- apply Git diffs -*- lexical-binding: t -*- -;; Copyright (C) 2010-2017 The Magit Project Contributors +;; Copyright (C) 2010-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. @@ -113,10 +113,10 @@ so causes the change to be applied to the index as well." (`(,_ files) (magit-apply-diffs it args))))) (defun magit-apply--section-content (section) - (buffer-substring-no-properties (if (eq (magit-section-type section) 'hunk) - (magit-section-start section) - (magit-section-content section)) - (magit-section-end section))) + (buffer-substring-no-properties (if (magit-hunk-section-p section) + (oref section start) + (oref section content)) + (oref section end))) (defun magit-apply-diffs (sections &rest args) (setq sections (magit-apply--get-diffs sections)) @@ -134,18 +134,18 @@ so causes the change to be applied to the index as well." (magit-apply--section-content section)))) (defun magit-apply-hunks (sections &rest args) - (let ((section (magit-section-parent (car sections)))) - (when (string-match "^diff --cc" (magit-section-value section)) + (let ((section (oref (car sections) parent))) + (when (string-match "^diff --cc" (oref section value)) (user-error "Cannot un-/stage resolution hunks. Stage the whole file")) (magit-apply-patch section args - (concat (magit-section-diff-header section) + (concat (oref section header) (mapconcat 'magit-apply--section-content sections ""))))) (defun magit-apply-hunk (section &rest args) (when (string-match "^diff --cc" (magit-section-parent-value section)) (user-error "Cannot un-/stage resolution hunks. Stage the whole file")) - (magit-apply-patch (magit-section-parent section) args + (magit-apply-patch (oref section parent) args (concat (magit-diff-file-header section) (magit-apply--section-content section)))) @@ -154,14 +154,14 @@ so causes the change to be applied to the index as well." (user-error "Not enough context to apply region. Increase the context")) (when (string-match "^diff --cc" (magit-section-parent-value section)) (user-error "Cannot un-/stage resolution hunks. Stage the whole file")) - (magit-apply-patch (magit-section-parent section) args + (magit-apply-patch (oref section parent) args (concat (magit-diff-file-header section) (magit-diff-hunk-region-patch section args)))) (defun magit-apply-patch (section:s args patch) (let* ((files (if (atom section:s) - (list (magit-section-value section:s)) - (mapcar 'magit-section-value section:s))) + (list (oref section:s value)) + (--map (oref it value) section:s))) (command (symbol-name this-command)) (command (if (and command (string-match "^magit-\\([^-]+\\)" command)) (match-string 1 command) @@ -182,18 +182,18 @@ so causes the change to be applied to the index as well." (defun magit-apply--get-selection () (or (magit-region-sections '(hunk file) t) (let ((section (magit-current-section))) - (pcase (magit-section-type section) + (pcase (oref section type) ((or `hunk `file) section) ((or `staged `unstaged `untracked `stashed-index `stashed-worktree `stashed-untracked) - (magit-section-children section)) + (oref section children)) (_ (user-error "Cannot apply this, it's not a change")))))) (defun magit-apply--get-diffs (sections) (magit-section-case ([file diffstat] (--map (or (magit-get-section - (append `((file . ,(magit-section-value it))) + (append `((file . ,(oref it value))) (magit-section-ident magit-root-section))) (error "Cannot get required diff headers")) sections)) @@ -228,7 +228,7 @@ at point, stage the file but not its content." (`(unstaged file t) (magit-apply-diff it "--cached")) (`(unstaged files t) (magit-apply-diffs it "--cached")) (`(unstaged list t) (magit-apply-diffs it "--cached")) - (`(unstaged file nil) (magit-stage-1 "-u" (list (magit-section-value it)))) + (`(unstaged file nil) (magit-stage-1 "-u" (list (oref it value)))) (`(unstaged files nil) (magit-stage-1 "-u" (magit-region-values nil t))) (`(unstaged list nil) (magit-stage-modified)) (`(staged ,_ ,_) (user-error "Already staged")) @@ -279,7 +279,7 @@ ignored) files." (defun magit-stage-untracked (&optional intent) (let* ((section (magit-current-section)) (files (pcase (magit-diff-scope) - (`file (list (magit-section-value section))) + (`file (list (oref section value))) (`files (magit-region-values nil t)) (`list (magit-untracked-files)))) plain repos) @@ -296,9 +296,9 @@ ignored) files." (mapc #'magit-turn-on-auto-revert-mode-if-desired plain))) (dolist (repo repos) (save-excursion - (goto-char (magit-section-start - (magit-get-section - `((file . ,repo) (untracked) (status))))) + (goto-char (oref (magit-get-section + `((file . ,repo) (untracked) (status))) + start)) (let* ((topdir (magit-toplevel)) (package (and (equal (bound-and-true-p borg-user-emacs-directory) @@ -341,7 +341,7 @@ ignored) files." (`(staged file t) (magit-apply-diff it "--reverse" "--cached")) (`(staged files t) (magit-apply-diffs it "--reverse" "--cached")) (`(staged list t) (magit-apply-diffs it "--reverse" "--cached")) - (`(staged file nil) (magit-unstage-1 (list (magit-section-value it)))) + (`(staged file nil) (magit-unstage-1 (list (oref it value)))) (`(staged files nil) (magit-unstage-1 (magit-region-values nil t))) (`(staged list nil) (magit-unstage-all)) (`(committed ,_ ,_) (if magit-unstage-committed @@ -414,8 +414,8 @@ without requiring confirmation." (if (eq (magit-diff-type section) 'unstaged) (funcall apply section "--reverse") (if (magit-anything-unstaged-p - nil (if (eq (magit-section-type section) 'file) - (magit-section-value section) + nil (if (magit-file-section-p section) + (oref section value) (magit-section-parent-value section))) (progn (let ((inhibit-magit-refresh t)) (funcall apply section "--reverse" "--cached") @@ -435,8 +435,8 @@ without requiring confirmation." (if (eq (magit-diff-type section) 'unstaged) (funcall apply sections "--reverse") (if (magit-anything-unstaged-p - nil (if (eq (magit-section-type section) 'file) - (magit-section-value section) + nil (if (magit-file-section-p section) + (oref section value) (magit-section-parent-value section))) (progn (let ((inhibit-magit-refresh t)) (funcall apply sections "--reverse" "--cached") @@ -453,7 +453,7 @@ without requiring confirmation." (status (magit-file-status)) files delete resurrect rename discard discard-new resolve) (dolist (section sections) - (let ((file (magit-section-value section))) + (let ((file (oref section value))) (push file files) (pcase (cons (pcase type (`staged ?X) @@ -536,7 +536,7 @@ without requiring confirmation." (magit-call-git "reset" "--" orig)))))) (defun magit-discard-files--discard (sections new-files) - (let ((files (mapcar #'magit-section-value sections))) + (let ((files (--map (oref it value) sections))) (when (magit-confirm-files 'discard (append files new-files) (format "Discard %s changes in" (magit-diff-type))) @@ -548,7 +548,7 @@ without requiring confirmation." (let ((binaries (magit-staged-binary-files))) (when binaries (setq sections - (--filter (not (member (magit-section-value it) binaries)) + (--filter (not (member (oref it value) binaries)) sections))) (cond ((= (length sections) 1) (magit-discard-apply (car sections) 'magit-apply-diff)) @@ -604,8 +604,9 @@ so causes the change to be applied to the index as well." (defun magit-reverse-files (sections args) (-let [(binaries sections) (let ((bs (magit-staged-binary-files))) - (--separate (member (magit-section-value it) bs) sections))] - (when (magit-confirm-files 'reverse (mapcar #'magit-section-value sections)) + (--separate (member (oref it value) bs) + sections))] + (when (magit-confirm-files 'reverse (--map (oref it value) sections)) (if (= (length sections) 1) (magit-reverse-apply (car sections) 'magit-apply-diff args) (magit-reverse-apply sections 'magit-apply-diffs args))) diff --git a/elpa/magit-20171208.618/magit-autoloads.el b/elpa/magit-20180118.313/magit-autoloads.el similarity index 95% rename from elpa/magit-20171208.618/magit-autoloads.el rename to elpa/magit-20180118.313/magit-autoloads.el index 6de1876e..7e4972c8 100644 --- a/elpa/magit-20171208.618/magit-autoloads.el +++ b/elpa/magit-20180118.313/magit-autoloads.el @@ -3,8 +3,8 @@ ;;; Code: (add-to-list 'load-path (directory-file-name (or (file-name-directory #$) (car load-path)))) -;;;### (autoloads nil "git-rebase" "git-rebase.el" (23082 53692 36198 -;;;;;; 378000)) +;;;### (autoloads nil "git-rebase" "git-rebase.el" (23136 41405 671630 +;;;;;; 959000)) ;;; Generated autoloads from git-rebase.el (autoload 'git-rebase-mode "git-rebase" "\ @@ -23,7 +23,7 @@ running 'man git-rebase' at the command line) for details. ;;;*** -;;;### (autoloads nil "magit" "magit.el" (23082 53692 83927 528000)) +;;;### (autoloads nil "magit" "magit.el" (23136 41405 717484 33000)) ;;; Generated autoloads from magit.el (autoload 'magit-merge-popup "magit" nil t) @@ -180,8 +180,8 @@ and Emacs to it. ;;;*** -;;;### (autoloads nil "magit-apply" "magit-apply.el" (23082 53692 -;;;;;; 51178 368000)) +;;;### (autoloads nil "magit-apply" "magit-apply.el" (23136 41405 +;;;;;; 687457 541000)) ;;; Generated autoloads from magit-apply.el (autoload 'magit-stage-file "magit-apply" "\ @@ -216,8 +216,8 @@ Remove all changes from the staging area. ;;;*** -;;;### (autoloads nil "magit-autorevert" "magit-autorevert.el" (23082 -;;;;;; 53692 18681 289000)) +;;;### (autoloads nil "magit-autorevert" "magit-autorevert.el" (23136 +;;;;;; 41405 656396 85000)) ;;; Generated autoloads from magit-autorevert.el (defvar magit-revert-buffers t) @@ -246,8 +246,8 @@ See `auto-revert-mode' for more information on Auto-Revert mode. ;;;*** -;;;### (autoloads nil "magit-bisect" "magit-bisect.el" (23082 53692 -;;;;;; 49057 714000)) +;;;### (autoloads nil "magit-bisect" "magit-bisect.el" (23136 41405 +;;;;;; 685693 119000)) ;;; Generated autoloads from magit-bisect.el (autoload 'magit-bisect-popup "magit-bisect" nil t) @@ -298,8 +298,8 @@ bisect run'. ;;;*** -;;;### (autoloads nil "magit-blame" "magit-blame.el" (23082 53692 -;;;;;; 78549 426000)) +;;;### (autoloads nil "magit-blame" "magit-blame.el" (23136 41405 +;;;;;; 713583 966000)) ;;; Generated autoloads from magit-blame.el (autoload 'magit-blame-popup "magit-blame" nil t) @@ -328,8 +328,8 @@ only arguments available from `magit-blame-popup' should be used. ;;;*** -;;;### (autoloads nil "magit-bookmark" "magit-bookmark.el" (23082 -;;;;;; 53692 40396 483000)) +;;;### (autoloads nil "magit-bookmark" "magit-bookmark.el" (23136 +;;;;;; 41405 675373 276000)) ;;; Generated autoloads from magit-bookmark.el (autoload 'magit-bookmark--status-jump "magit-bookmark" "\ @@ -434,8 +434,8 @@ Create a Magit submodule list bookmark. ;;;*** -;;;### (autoloads nil "magit-branch" "magit-branch.el" (23082 53692 -;;;;;; 47134 909000)) +;;;### (autoloads nil "magit-branch" "magit-branch.el" (23136 41405 +;;;;;; 683693 933000)) ;;; Generated autoloads from magit-branch.el (autoload 'magit-branch-popup "magit" nil t) @@ -574,10 +574,15 @@ defaulting to the branch at point. \(fn BRANCHES &optional FORCE)" t nil) (autoload 'magit-branch-rename "magit-branch" "\ -Rename branch OLD to NEW. -With prefix, forces the rename even if NEW already exists. +Rename the branch named OLD to NEW. -\(git branch -m|-M OLD NEW). +With a prefix argument FORCE, rename even if a branch named NEW +already exists. + +If `branch.OLD.pushRemote' is set, then unset it. Depending on +the value of `magit-branch-rename-push-target' (which see) maybe +set `branch.NEW.pushRemote' and maybe rename the push-target on +the remote. \(fn OLD NEW &optional FORCE)" t nil) @@ -708,8 +713,8 @@ When `never' (the default) then the variable is never set. ;;;*** -;;;### (autoloads nil "magit-collab" "magit-collab.el" (23082 53692 -;;;;;; 71951 977000)) +;;;### (autoloads nil "magit-collab" "magit-collab.el" (23136 41405 +;;;;;; 705936 705000)) ;;; Generated autoloads from magit-collab.el (autoload 'magit-browse-pull-request "magit-collab" "\ @@ -722,8 +727,8 @@ be lifted eventually to support other Git forges. ;;;*** -;;;### (autoloads nil "magit-commit" "magit-commit.el" (23082 53692 -;;;;;; 20776 989000)) +;;;### (autoloads nil "magit-commit" "magit-commit.el" (23136 41405 +;;;;;; 658182 227000)) ;;; Generated autoloads from magit-commit.el (autoload 'magit-commit "magit-commit" "\ @@ -805,8 +810,8 @@ Create a squash commit targeting COMMIT and instantly rebase. ;;;*** -;;;### (autoloads nil "magit-diff" "magit-diff.el" (23082 53692 76505 -;;;;;; 484000)) +;;;### (autoloads nil "magit-diff" "magit-diff.el" (23136 41405 710989 +;;;;;; 251000)) ;;; Generated autoloads from magit-diff.el (autoload 'magit-diff-popup "magit-diff" "\ @@ -890,8 +895,8 @@ for a revision. ;;;*** -;;;### (autoloads nil "magit-ediff" "magit-ediff.el" (23082 53692 -;;;;;; 64397 875000)) +;;;### (autoloads nil "magit-ediff" "magit-ediff.el" (23136 41405 +;;;;;; 699067 934000)) ;;; Generated autoloads from magit-ediff.el (autoload 'magit-ediff-popup "magit-ediff" nil t) @@ -979,8 +984,8 @@ stash that were staged. ;;;*** -;;;### (autoloads nil "magit-extras" "magit-extras.el" (23082 53692 -;;;;;; 22553 552000)) +;;;### (autoloads nil "magit-extras" "magit-extras.el" (23136 41405 +;;;;;; 659866 526000)) ;;; Generated autoloads from magit-extras.el (autoload 'magit-run-git-gui "magit-extras" "\ @@ -1124,8 +1129,8 @@ patch application, a cherry-pick, a revert, or a bisect. ;;;*** -;;;### (autoloads nil "magit-files" "magit-files.el" (23082 53692 -;;;;;; 38359 350000)) +;;;### (autoloads nil "magit-files" "magit-files.el" (23136 41405 +;;;;;; 673621 781000)) ;;; Generated autoloads from magit-files.el (autoload 'magit-find-file "magit-files" "\ @@ -1172,8 +1177,8 @@ Checkout FILE from REV. ;;;*** -;;;### (autoloads nil "magit-imenu" "magit-imenu.el" (23082 53692 -;;;;;; 62457 142000)) +;;;### (autoloads nil "magit-imenu" "magit-imenu.el" (23136 41405 +;;;;;; 697269 116000)) ;;; Generated autoloads from magit-imenu.el (autoload 'magit-imenu--log-prev-index-position-function "magit-imenu" "\ @@ -1289,8 +1294,8 @@ beginning of the line. ;;;*** -;;;### (autoloads nil "magit-log" "magit-log.el" (23082 53692 66383 -;;;;;; 653000)) +;;;### (autoloads nil "magit-log" "magit-log.el" (23136 41405 701080 +;;;;;; 500000)) ;;; Generated autoloads from magit-log.el (autoload 'magit-log-buffer-file-popup "magit-log" "\ @@ -1373,15 +1378,15 @@ Show commits in a branch that are not merged in the upstream branch. ;;;*** -;;;### (autoloads nil "magit-notes" "magit-notes.el" (23082 53692 -;;;;;; 103906 740000)) +;;;### (autoloads nil "magit-notes" "magit-notes.el" (23136 41405 +;;;;;; 736286 140000)) ;;; Generated autoloads from magit-notes.el (autoload 'magit-notes-popup "magit" nil t) ;;;*** -;;;### (autoloads nil "magit-refs" "magit-refs.el" (23082 53692 24647 -;;;;;; 722000)) +;;;### (autoloads nil "magit-refs" "magit-refs.el" (23136 41405 661697 +;;;;;; 181000)) ;;; Generated autoloads from magit-refs.el (autoload 'magit-show-refs-popup "magit-refs" "\ @@ -1410,8 +1415,8 @@ Refs are compared with a branch read from the user. ;;;*** -;;;### (autoloads nil "magit-remote" "magit-remote.el" (23082 53692 -;;;;;; 91439 142000)) +;;;### (autoloads nil "magit-remote" "magit-remote.el" (23136 41405 +;;;;;; 725744 209000)) ;;; Generated autoloads from magit-remote.el (autoload 'magit-clone "magit-remote" "\ @@ -1436,6 +1441,13 @@ Delete the remote named REMOTE. \(fn REMOTE)" t nil) +(autoload 'magit-remote-prune-refspecs "magit-remote" "\ +Remove stale refspecs and tracking branches for REMOTE. +If there are only stale refspecs, then offer to either delete the +remote or replace the refspecs with the default refspec instead. + +\(fn REMOTE)" t nil) + (autoload 'magit-remote-set-head "magit-remote" "\ Set the local representation of REMOTE's default branch. Query REMOTE and set the symbolic-ref refs/remotes//HEAD @@ -1643,8 +1655,8 @@ is asked to pull. START has to be reachable from that commit. ;;;*** -;;;### (autoloads nil "magit-repos" "magit-repos.el" (23082 53692 -;;;;;; 73874 448000)) +;;;### (autoloads nil "magit-repos" "magit-repos.el" (23136 41405 +;;;;;; 709110 269000)) ;;; Generated autoloads from magit-repos.el (autoload 'magit-list-repositories "magit-repos" "\ @@ -1658,8 +1670,8 @@ control which repositories are displayed. ;;;*** -;;;### (autoloads nil "magit-sequence" "magit-sequence.el" (23082 -;;;;;; 53692 87623 716000)) +;;;### (autoloads nil "magit-sequence" "magit-sequence.el" (23136 +;;;;;; 41405 721154 941000)) ;;; Generated autoloads from magit-sequence.el (autoload 'magit-sequencer-continue "magit-sequence" "\ @@ -1814,8 +1826,8 @@ Abort the current rebase operation, restoring the original branch. ;;;*** -;;;### (autoloads nil "magit-stash" "magit-stash.el" (23082 53692 -;;;;;; 58503 959000)) +;;;### (autoloads nil "magit-stash" "magit-stash.el" (23136 41405 +;;;;;; 693437 511000)) ;;; Generated autoloads from magit-stash.el (autoload 'magit-stash-popup "magit-stash" nil t) @@ -1921,8 +1933,8 @@ Show all diffs of a stash in a buffer. ;;;*** -;;;### (autoloads nil "magit-status" "magit-status.el" (23082 53692 -;;;;;; 68460 554000)) +;;;### (autoloads nil "magit-status" "magit-status.el" (23136 41405 +;;;;;; 704009 426000)) ;;; Generated autoloads from magit-status.el (autoload 'magit-init "magit-status" "\ @@ -1953,8 +1965,8 @@ then offer to initialize it as a new repository. ;;;*** -;;;### (autoloads nil "magit-submodule" "magit-submodule.el" (23082 -;;;;;; 53692 106239 18000)) +;;;### (autoloads nil "magit-submodule" "magit-submodule.el" (23136 +;;;;;; 41405 738113 17000)) ;;; Generated autoloads from magit-submodule.el (autoload 'magit-submodule-popup "magit-submodule" nil t) @@ -2057,8 +2069,8 @@ Display a list of the current repository's submodules. ;;;*** -;;;### (autoloads nil "magit-subtree" "magit-subtree.el" (23082 53692 -;;;;;; 42534 163000)) +;;;### (autoloads nil "magit-subtree" "magit-subtree.el" (23136 41405 +;;;;;; 679032 636000)) ;;; Generated autoloads from magit-subtree.el (autoload 'magit-subtree-popup "magit-subtree" nil t) @@ -2094,8 +2106,8 @@ Extract the history of the subtree PREFIX. ;;;*** -;;;### (autoloads nil "magit-utils" "magit-utils.el" (23082 53692 -;;;;;; 17247 178000)) +;;;### (autoloads nil "magit-utils" "magit-utils.el" (23136 41405 +;;;;;; 655055 816000)) ;;; Generated autoloads from magit-utils.el (autoload 'magit-emacs-Q-command "magit-utils" "\ @@ -2120,8 +2132,8 @@ See info node `(magit)Debugging Tools' for more information. ;;;*** -;;;### (autoloads nil "magit-wip" "magit-wip.el" (23082 53692 28660 -;;;;;; 836000)) +;;;### (autoloads nil "magit-wip" "magit-wip.el" (23136 41405 665772 +;;;;;; 555000)) ;;; Generated autoloads from magit-wip.el (defvar magit-wip-after-save-mode nil "\ @@ -2189,8 +2201,8 @@ command which is about to be called are committed. ;;;*** -;;;### (autoloads nil "magit-worktree" "magit-worktree.el" (23082 -;;;;;; 53692 95657 229000)) +;;;### (autoloads nil "magit-worktree" "magit-worktree.el" (23136 +;;;;;; 41405 731725 396000)) ;;; Generated autoloads from magit-worktree.el (autoload 'magit-worktree-popup "magit-worktree" nil t) @@ -2208,7 +2220,7 @@ Create a new BRANCH and check it out in a new worktree at PATH. ;;;### (autoloads nil nil ("magit-core.el" "magit-git.el" "magit-margin.el" ;;;;;; "magit-mode.el" "magit-obsolete.el" "magit-pkg.el" "magit-process.el" -;;;;;; "magit-section.el") (23082 53692 93769 903000)) +;;;;;; "magit-section.el") (23136 41405 727723 664000)) ;;;*** diff --git a/elpa/magit-20171208.618/magit-autorevert.el b/elpa/magit-20180118.313/magit-autorevert.el similarity index 99% rename from elpa/magit-20171208.618/magit-autorevert.el rename to elpa/magit-20180118.313/magit-autorevert.el index e6c6f731..c4681ae7 100644 --- a/elpa/magit-20171208.618/magit-autorevert.el +++ b/elpa/magit-20180118.313/magit-autorevert.el @@ -1,6 +1,6 @@ ;;; magit-autorevert.el --- revert buffers when files in repository change -*- lexical-binding: t -*- -;; Copyright (C) 2010-2017 The Magit Project Contributors +;; Copyright (C) 2010-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. diff --git a/elpa/magit-20171208.618/magit-bisect.el b/elpa/magit-20180118.313/magit-bisect.el similarity index 99% rename from elpa/magit-20171208.618/magit-bisect.el rename to elpa/magit-20180118.313/magit-bisect.el index fff770d1..2a34bf41 100644 --- a/elpa/magit-20171208.618/magit-bisect.el +++ b/elpa/magit-20180118.313/magit-bisect.el @@ -1,6 +1,6 @@ ;;; magit-bisect.el --- bisect support for Magit -*- lexical-binding: t -*- -;; Copyright (C) 2011-2017 The Magit Project Contributors +;; Copyright (C) 2011-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. diff --git a/elpa/magit-20171208.618/magit-blame.el b/elpa/magit-20180118.313/magit-blame.el similarity index 99% rename from elpa/magit-20171208.618/magit-blame.el rename to elpa/magit-20180118.313/magit-blame.el index e9668da4..7079f3eb 100644 --- a/elpa/magit-20171208.618/magit-blame.el +++ b/elpa/magit-20180118.313/magit-blame.el @@ -1,6 +1,6 @@ ;;; magit-blame.el --- blame support for Magit -*- lexical-binding: t -*- -;; Copyright (C) 2012-2017 The Magit Project Contributors +;; Copyright (C) 2012-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. diff --git a/elpa/magit-20171208.618/magit-bookmark.el b/elpa/magit-20180118.313/magit-bookmark.el similarity index 95% rename from elpa/magit-20171208.618/magit-bookmark.el rename to elpa/magit-20180118.313/magit-bookmark.el index 6f0306bd..174ab59a 100644 --- a/elpa/magit-20171208.618/magit-bookmark.el +++ b/elpa/magit-20180118.313/magit-bookmark.el @@ -1,6 +1,6 @@ ;;; magit-bookmark.el --- bookmark support for Magit -*- lexical-binding: t -*- -;; Copyright (C) 2010-2017 The Magit Project Contributors +;; Copyright (C) 2010-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. @@ -51,8 +51,9 @@ This function will: (when (derived-mode-p 'magit-mode) (-when-let (hidden-sections (bookmark-prop-get bookmark 'magit-hidden-sections)) - (--each (magit-section-children magit-root-section) - (if (member (cons (magit-section-type it) (magit-section-value it)) + (--each (oref magit-root-section children) + (if (member (cons (oref it type) + (oref it value)) hidden-sections) (magit-section-hide it) (magit-section-show it))))) @@ -87,9 +88,10 @@ specifies additional properties to store in the bookmark." (when (derived-mode-p 'magit-mode) (bookmark-prop-set bookmark 'magit-hidden-sections - (--map (cons (magit-section-type it) (magit-section-value it)) - (-filter #'magit-section-hidden - (magit-section-children magit-root-section))))) + (--map (cons (oref it type) + (oref it value)) + (--filter (oref it hidden) + (oref magit-root-section children))))) (when make-props (pcase-dolist (`(,prop . ,value) (apply make-props magit-refresh-args)) (bookmark-prop-set bookmark prop value))) @@ -340,12 +342,12 @@ specifies additional properties to store in the bookmark." (magit-args . ,args) (magit-files . ,files) (magit-hidden-sections - . ,(--map `(,(magit-section-type it) + . ,(--map `(,(oref it type) . ,(replace-regexp-in-string (regexp-quote stash) magit-buffer-revision-hash - (magit-section-value it))) - (-filter #'magit-section-hidden - (magit-section-children magit-root-section)))))))) + (oref it value))) + (--filter (oref it hidden) + (oref magit-root-section children)))))))) ;;; Submodules diff --git a/elpa/magit-20171208.618/magit-branch.el b/elpa/magit-20180118.313/magit-branch.el similarity index 91% rename from elpa/magit-20171208.618/magit-branch.el rename to elpa/magit-20180118.313/magit-branch.el index 274aa4e1..3e868b9f 100644 --- a/elpa/magit-20171208.618/magit-branch.el +++ b/elpa/magit-20180118.313/magit-branch.el @@ -1,6 +1,6 @@ ;;; magit-branch.el --- branch support -*- lexical-binding: t -*- -;; Copyright (C) 2010-2017 The Magit Project Contributors +;; Copyright (C) 2010-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. @@ -149,6 +149,32 @@ However, I recommend that you use local branches as UPSTREAM." (repeat :tag "except" (string :tag "branch")))))) +(defcustom magit-branch-rename-push-target t + "Whether the push-remote setup is preserved when renaming a branch. + +The command `magit-branch-rename' renames a branch named OLD to +NEW. This option controls how much of the push-remote setup is +preserved when doing so. + +When nil, then preserve nothing and unset `branch.OLD.pushRemote'. + +When `local-only', then first set `branch.NEW.pushRemote' to the + same value as `branch.OLD.pushRemote', provided the latter is + actually set and unless the former already has another value. + +When t, then rename the branch named OLD on the remote specified + by `branch.OLD.pushRemote' to NEW, provided OLD exists on that + remote and unless NEW already exists on the remote. + +When `github-only', then behave like `t' if the remote points to + a repository on Github, otherwise like `local-only'." + :group 'magit-commands + :type '(choice + (const :tag "Don't preserve push-remote setup" nil) + (const :tag "Preserve push-remote setup" local-only) + (const :tag "... and rename corresponding branch on remote" t) + (const :tag "... but only if remote is on Github" github-only))) + (defcustom magit-branch-popup-show-variables t "Whether the `magit-branch-popup' shows Git variables. This defaults to t to avoid changing key bindings. When set to @@ -178,8 +204,8 @@ and change branch related variables." (?c "Checkout new branch" magit-branch-and-checkout) (?n "Create new branch" magit-branch) (?x "Reset" magit-branch-reset) - (?r "Checkout pull-request" magit-checkout-pull-request) - (?R "Create from pull-request" magit-branch-pull-request) + (?y "Checkout pull-request" magit-checkout-pull-request) + (?Y "Create from pull-request" magit-branch-pull-request) (?k "Delete" magit-branch-delete) (?w "Checkout new worktree" magit-worktree-checkout) (?W "Create new worktree" magit-worktree-branch)) @@ -522,7 +548,7 @@ that is being reset." (setq args (cons "--force" args))) (if (equal branch (magit-get-current-branch)) (if (and (magit-anything-modified-p) - (not (yes-or-no-p "Uncommitted changes will be lost. Proceed?"))) + (not (yes-or-no-p "Uncommitted changes will be lost. Proceed? "))) (user-error "Abort") (magit-reset-hard to) (when (and set-upstream (magit-branch-p to)) @@ -583,6 +609,7 @@ defaulting to the branch at point." ((> (length branches) 1) (setq branches (delete (magit-get-current-branch) branches)) (mapc 'magit-branch-maybe-delete-pr-remote branches) + (mapc 'magit-branch-unset-pushRemote branches) (magit-run-git "branch" (if force "-D" "-d") branches)) (t ; And now for something completely different. (let* ((branch (car branches)) @@ -616,6 +643,7 @@ defaulting to the branch at point." (`abort (user-error "Abort"))) (setq force t)) (magit-branch-maybe-delete-pr-remote branch) + (magit-branch-unset-pushRemote branch) (magit-run-git "branch" (if force "-D" "-d") branch)))))) (put 'magit-branch-delete 'interactive-only t) @@ -645,6 +673,9 @@ defaulting to the branch at point." (magit-call-git "config" "--unset" variable (regexp-quote refspec))))))))) +(defun magit-branch-unset-pushRemote (branch) + (magit-set nil "branch" branch "pushRemote")) + (defun magit-delete-remote-branch-sentinel (refs process event) (when (memq (process-status process) '(exit signal)) (if (= (process-exit-status process) 0) @@ -663,9 +694,15 @@ defaulting to the branch at point." ;;;###autoload (defun magit-branch-rename (old new &optional force) - "Rename branch OLD to NEW. -With prefix, forces the rename even if NEW already exists. -\n(git branch -m|-M OLD NEW)." + "Rename the branch named OLD to NEW. + +With a prefix argument FORCE, rename even if a branch named NEW +already exists. + +If `branch.OLD.pushRemote' is set, then unset it. Depending on +the value of `magit-branch-rename-push-target' (which see) maybe +set `branch.NEW.pushRemote' and maybe rename the push-target on +the remote." (interactive (let ((branch (magit-read-local-branch "Rename branch"))) (list branch @@ -674,8 +711,40 @@ With prefix, forces the rename even if NEW already exists. current-prefix-arg))) (when (string-match "\\`heads/\\(.+\\)" old) (setq old (match-string 1 old))) - (unless (string= old new) - (magit-run-git "branch" (if force "-M" "-m") old new))) + (when (equal old new) + (user-error "Old and new branch names are the same")) + (magit-call-git "branch" (if force "-M" "-m") old new) + (when magit-branch-rename-push-target + (let ((remote (magit-get-push-remote old)) + (old-specific (magit-get "branch" old "pushRemote")) + (new-specific (magit-get "branch" new "pushRemote"))) + (when (and old-specific (or force (not new-specific))) + ;; Keep the target setting branch specific, even if that is + ;; redundant. But if a branch by the same name existed before + ;; and the rename isn't forced, then do not change a leftover + ;; setting. Such a leftover setting may or may not conform to + ;; what we expect here... + (magit-set old-specific "branch" new "pushRemote")) + (when (and (equal (magit-get-push-remote new) remote) + ;; ...and if it does not, then we must abort. + (not (eq magit-branch-rename-push-target 'local-only)) + (or (not (eq magit-branch-rename-push-target 'github-only)) + (magit--github-remote-p remote))) + (let ((old-target (magit-get-push-branch old t)) + (new-target (magit-get-push-branch new t))) + (when (and old-target (not new-target)) + ;; Rename on (i.e. within) the remote, but only if the + ;; destination ref doesn't exist yet. If that ref already + ;; exists, then it probably is of some value and we better + ;; not touch it. Ignore what the local ref points at, + ;; i.e. if the local and the remote ref didn't point at + ;; the same commit before the rename then keep it that way. + (magit-call-git "push" "-v" + (magit-get-push-remote new) + (format "%s:refs/heads/%s" old-target new) + (format ":refs/heads/%s" old))))))) + (magit-branch-unset-pushRemote old) + (magit-refresh)) ;;; Config Popup @@ -777,7 +846,8 @@ variable `branch..description'." (var (format "branch.%s.description" branch))) (concat var " " (make-string (- width (length var)) ?\s) (-if-let (value (magit-get var)) - (propertize value 'face 'magit-popup-option-value) + (propertize (car (split-string value "\n")) + 'face 'magit-popup-option-value) (propertize "unset" 'face 'magit-popup-disabled-argument))))) ;;;###autoload diff --git a/elpa/magit-20171208.618/magit-collab.el b/elpa/magit-20180118.313/magit-collab.el similarity index 73% rename from elpa/magit-20171208.618/magit-collab.el rename to elpa/magit-20180118.313/magit-collab.el index 172ca1b7..be93dfd5 100644 --- a/elpa/magit-20171208.618/magit-collab.el +++ b/elpa/magit-20180118.313/magit-collab.el @@ -1,6 +1,6 @@ ;;; magit-collab.el --- collaboration tools -*- lexical-binding: t -*- -;; Copyright (C) 2010-2017 The Magit Project Contributors +;; Copyright (C) 2010-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. @@ -67,10 +67,12 @@ Currently this only supports Github, but that restriction will be lifted eventually to support other Git forges." (interactive (list (magit-read-pull-request "Visit pull request"))) (browse-url (format "https://github.com/%s/pull/%s" - (--> pr - (cdr (assq 'base it)) - (cdr (assq 'repo it)) - (cdr (assq 'full_name it))) + ;; Cannot use --> yet. See #3134. + (let* ((it pr) + (it (cdr (assq 'base it))) + (it (cdr (assq 'repo it))) + (it (cdr (assq 'full_name it)))) + it) (cdr (assq 'number pr))))) ;;; Utilities @@ -81,22 +83,23 @@ Return the Git forge's API response. Currently this function only supports Github, but that will change eventually." (let* ((origin (magit-upstream-repository)) (url (magit-get "remote" origin "url")) - (prs (ghub-get - (format "/repos/%s/pulls" - (and (string-match - "github.com[:/]\\(.+?\\)\\(?:\\.git\\)?\\'" url) - (match-string 1 url))) - nil :auth 'magit)) + (id (and (string-match "github.com[:/]\\(.+?\\)\\(?:\\.git\\)?\\'" + url) + (match-string 1 url))) + (fmtfun (lambda (pull-request) + (format "%s %s" + (cdr (assq 'number pull-request)) + (cdr (assq 'title pull-request))))) + (prs (ghub-get (format "/repos/%s/pulls" id) nil :auth 'magit)) (choice (magit-completing-read - prompt - (--map (format "%s %s" - (cdr (assq 'number it)) - (cdr (assq 'title it))) - prs) - nil t)) + prompt (mapcar fmtfun prs) nil nil nil nil + (let ((default (thing-at-point 'github-pull-request))) + (and default (funcall fmtfun default))))) (number (and (string-match "\\([0-9]+\\)" choice) (string-to-number (match-string 1 choice))))) - (--first (eq (cdr (assq 'number it)) number) prs))) + (and number + (or (--first (= (cdr (assq 'number it)) number) prs) + (ghub-get (format "/repos/%s" id) nil :auth 'magit))))) (defun magit-upstream-repository () "Return the remote name of the upstream repository. @@ -117,6 +120,15 @@ exist, then raise an error." \\(\\([^/]+\\)/\\(.+?\\)\\)\ \\(?:\\.git\\)?\\'") +(defun magit--github-url-p (url) + (and url (string-match-p magit--github-url-regexp url))) + +(defun magit--github-remote-p (remote) + (or (--when-let (magit-get "remote" remote "pushurl") + (magit--github-url-p it)) + (--when-let (magit-get "remote" remote "url") + (magit--github-url-p it)))) + (defun magit--github-url-equal (r1 r2) (or (equal r1 r2) (let ((n1 (and (string-match magit--github-url-regexp r1) diff --git a/elpa/magit-20171208.618/magit-commit.el b/elpa/magit-20180118.313/magit-commit.el similarity index 99% rename from elpa/magit-20171208.618/magit-commit.el rename to elpa/magit-20180118.313/magit-commit.el index e13f2ed5..99613d15 100644 --- a/elpa/magit-20171208.618/magit-commit.el +++ b/elpa/magit-20180118.313/magit-commit.el @@ -1,6 +1,6 @@ ;;; magit-commit.el --- create Git commits -*- lexical-binding: t -*- -;; Copyright (C) 2008-2017 The Magit Project Contributors +;; Copyright (C) 2008-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. diff --git a/elpa/magit-20171208.618/magit-core.el b/elpa/magit-20180118.313/magit-core.el similarity index 98% rename from elpa/magit-20171208.618/magit-core.el rename to elpa/magit-20180118.313/magit-core.el index 1d03837b..106186ea 100644 --- a/elpa/magit-20171208.618/magit-core.el +++ b/elpa/magit-20180118.313/magit-core.el @@ -1,6 +1,6 @@ ;;; magit-core.el --- core functionality -*- lexical-binding: t -*- -;; Copyright (C) 2010-2017 The Magit Project Contributors +;; Copyright (C) 2010-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. diff --git a/elpa/magit-20171208.618/magit-diff.el b/elpa/magit-20180118.313/magit-diff.el similarity index 92% rename from elpa/magit-20171208.618/magit-diff.el rename to elpa/magit-20180118.313/magit-diff.el index 4c9dce89..f382f5a9 100644 --- a/elpa/magit-20171208.618/magit-diff.el +++ b/elpa/magit-20180118.313/magit-diff.el @@ -1,6 +1,6 @@ ;;; magit-diff.el --- inspect Git diffs -*- lexical-binding: t -*- -;; Copyright (C) 2010-2017 The Magit Project Contributors +;; Copyright (C) 2010-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. @@ -169,6 +169,34 @@ t show fine differences for the current diff hunk only. (put 'magit-diff-refine-hunk 'permanent-local t) +(defcustom magit-diff-adjust-tab-width nil + "Whether to adjust the width of tabs in diffs. + +Determining the correct width can be expensive if it requires +opening large and/or many files, so the widths are cached in +the variable `magit-diff--tab-width-cache'. Set that to nil +to invalidate the cache. + +nil Never ajust tab width. Use `tab-width's value from + the Magit buffer itself instead. + +t If the corresponding file-visiting buffer exits, then + use `tab-width's value from that buffer. Doing this is + cheap, so this value is used even if a corresponding + cache entry exists. + +`always' If there is no such buffer, then temporarily visit the + file to determine the value. + +NUMBER Like `always', but don't visit files larger than NUMBER + bytes." + :package-version '(magit . "2.12.0") + :group 'magit-diff + :type '(choice (const :tag "Never" nil) + (const :tag "If file-visiting buffer exists" t) + (const :tag "... or file isn't larger than bytes" all) + (const :tag "Always" always))) + (defcustom magit-diff-paint-whitespace t "Specify where to highlight whitespace errors. See `magit-diff-highlight-trailing', @@ -347,7 +375,10 @@ interchanging the halves once more, which cancels out the effect of the bug. See https://github.com/magit/magit/issues/2265 -and https://debbugs.gnu.org/cgi/bugreport.cgi?bug=7847." +and https://debbugs.gnu.org/cgi/bugreport.cgi?bug=7847. + +Starting with Emacs 26.1 this kludge should not be required for +any build." :package-version '(magit . "2.3.0") :group 'magit-revision :type 'boolean) @@ -761,14 +792,14 @@ If no DWIM context is found, nil is returned." ((derived-mode-p 'magit-stash-mode) (cons 'commit (magit-section-case - (commit (magit-section-value it)) + (commit (oref it value)) (file (-> it - magit-section-parent - magit-section-value)) + (oref parent) + (oref value))) (hunk (-> it - magit-section-parent - magit-section-parent - magit-section-value))))) + (oref parent) + (oref parent) + (oref value)))))) ((derived-mode-p 'magit-revision-mode) (cons 'commit (car magit-refresh-args))) ((derived-mode-p 'magit-diff-mode) @@ -777,10 +808,10 @@ If no DWIM context is found, nil is returned." (magit-section-case ([* unstaged] 'unstaged) ([* staged] 'staged) - (unpushed (magit-section-value it)) - (unpulled (magit-section-value it)) + (unpushed (oref it value)) + (unpulled (oref it value)) (branch (let ((current (magit-get-current-branch)) - (atpoint (magit-section-value it))) + (atpoint (oref it value))) (if (equal atpoint current) (--if-let (magit-get-upstream-branch) (format "%s...%s" it current) @@ -790,8 +821,8 @@ If no DWIM context is found, nil is returned." (format "%s...%s" (or current "HEAD") atpoint)))) - (commit (cons 'commit (magit-section-value it))) - (stash (cons 'stash (magit-section-value it))))))) + (commit (cons 'commit (oref it value))) + (stash (cons 'stash (oref it value))))))) (defun magit-diff-read-range-or-commit (prompt &optional secondary-default mbase) "Read range or revision with special diff range treatment. @@ -972,8 +1003,8 @@ for a revision." (with-current-buffer buffer (let ((prev (car magit-refresh-args))) (unless (equal rev prev) - (dolist (child (cdr (magit-section-children magit-root-section))) - (when (eq (magit-section-type child) 'file) + (dolist (child (cdr (oref magit-root-section children))) + (when (magit-file-section-p child) (magit-section-cache-visibility child))))))) (magit-mode-setup #'magit-revision-mode rev nil args files))) @@ -1145,10 +1176,17 @@ parent of the commit which removed that line, i.e. the last commit where that line still existed. Otherwise visit the blob for the commit whose changes are being shown. -When the file or blob to be displayed is already being displayed -in another window of the same frame, then just select that window -and adjust point. Otherwise, or with a prefix argument, display -the buffer in another window." +Interactively, when the file or blob to be displayed is already +being displayed in another window of the same frame, then just +select that window and adjust point. Otherwise, or with a prefix +argument, display the buffer in another window. The meaning of +the prefix argument can be inverted or further modified using the +option `magit-display-file-buffer-function'. Non-interactively +the optional OTHER-WINDOW argument is taken literally. + +The optional FORCE-WORKTREE means to force visiting the worktree +version of the file. To do this interactively use the command +`magit-diff-visit-file-worktree' instead." (interactive (list (--if-let (magit-file-at-point) (expand-file-name it) (user-error "No file at point")) @@ -1170,7 +1208,12 @@ the buffer in another window." (magit-find-file-noselect rev file) (or (get-file-buffer file) (find-file-noselect file))))) - (magit-display-file-buffer buf) + (cond ((called-interactively-p 'any) + (magit-display-file-buffer buf)) + ((or other-window (get-buffer-window buf)) + (switch-to-buffer-other-window buf)) + (t + (pop-to-buffer buf))) (with-selected-window (or (get-buffer-window buf 'visible) (error "File buffer is not visible")) @@ -1196,6 +1239,23 @@ the buffer in another window." (smerge-start-session)) (run-hooks 'magit-diff-visit-file-hook))))) +(defun magit-diff-visit-file-other-window (file) + "From a diff, visit the corresponding file at the appropriate position. +The file is shown in another window. + +If the diff shows changes in the worktree, the index, or `HEAD', +then visit the actual file. Otherwise, when the diff is about an +older commit or a range, then visit the appropriate blob. + +If point is on a removed line, then visit the blob for the first +parent of the commit which removed that line, i.e. the last +commit where that line still existed. Otherwise visit the blob +for the commit whose changes are being shown." + (interactive (list (--if-let (magit-file-at-point) + (expand-file-name it) + (user-error "No file at point")))) + (magit-diff-visit-file file t)) + (defvar magit-display-file-buffer-function 'magit-display-file-buffer-traditional "The function used by `magit-diff-visit-file' to display blob buffers. @@ -1272,11 +1332,11 @@ or `HEAD'." (let ((section (magit-current-section))) (cl-case scope ((file files) - (setq section (car (magit-section-children section)))) + (setq section (car (oref section children)))) (list - (setq section (car (magit-section-children section))) + (setq section (car (oref section children))) (when section - (setq section (car (magit-section-children section)))))) + (setq section (car (oref section children)))))) (and ;; Unmerged files appear in the list of staged changes ;; but unlike in the list of unstaged changes no diffs @@ -1285,7 +1345,7 @@ or `HEAD'." ;; Currently the `hunk' type is also abused for file ;; mode changes, which we are not interested in here. ;; Such sections have no value. - (magit-section-value section) + (oref section value) section)))) (defun magit-diff-visit--offset (file rev hunk-start line-offset) @@ -1319,9 +1379,9 @@ or `HEAD'." (+ hunk-start line-offset offset))) (defun magit-diff-hunk-line (section) - (let* ((value (magit-section-value section)) + (let* ((value (oref section value)) (prefix (- (length value) 2)) - (cpos (marker-position (magit-section-content section))) + (cpos (marker-position (oref section content))) (stop (line-number-at-pos)) (cstart (save-excursion (goto-char cpos) (line-number-at-pos))) @@ -1350,11 +1410,12 @@ or `HEAD'." (list line offset))) (defun magit-diff-hunk-column (section) - (if (or (< (point) (magit-section-content section)) + (if (or (< (point) + (oref section content)) (save-excursion (beginning-of-line) (looking-at-p "-"))) 0 (max 0 (- (+ (current-column) 2) - (length (magit-section-value section)))))) + (length (oref section value)))))) (defun magit-diff-visit-directory (directory &optional other-window) (if (equal (magit-toplevel directory) @@ -1410,15 +1471,15 @@ commit or stash at point, then prompt for a commit." (t (magit-section-case (branch - (setq rev (magit-ref-maybe-qualify (magit-section-value it))) + (setq rev (magit-ref-maybe-qualify (oref it value))) (setq cmd 'magit-show-commit) (setq buf (magit-mode-get-buffer 'magit-revision-mode))) (commit - (setq rev (magit-section-value it)) + (setq rev (oref it value)) (setq cmd 'magit-show-commit) (setq buf (magit-mode-get-buffer 'magit-revision-mode))) (stash - (setq rev (magit-section-value it)) + (setq rev (oref it value)) (setq cmd 'magit-stash-show) (setq buf (magit-mode-get-buffer 'magit-stash-mode)))))) (if rev @@ -1583,8 +1644,8 @@ section or a child thereof." (interactive) (--if-let (magit-get-section (append (magit-section-case - ([file diffstat] `((file . ,(magit-section-value it)))) - (file `((file . ,(magit-section-value it)) (diffstat))) + ([file diffstat] `((file . ,(oref it value)))) + (file `((file . ,(oref it value)) (diffstat))) (t '((diffstat)))) (magit-section-ident magit-root-section))) (magit-section-goto it) @@ -1723,8 +1784,8 @@ section or a child thereof." 'face 'magit-diff-file-heading)) (magit-insert-heading) (unless (equal orig file) - (setf (magit-section-source section) orig)) - (setf (magit-section-diff-header section) header) + (oset section source orig)) + (oset section header header) (when modes (magit-insert-section (hunk) (insert modes))) @@ -1802,13 +1863,13 @@ section or a child thereof." (magit-insert-heading) (while (not (or (eobp) (looking-at "^[^-+\s\\]"))) (forward-line)) - (setf (magit-section-end it) (point)) - (setf (magit-section-washer it) #'magit-diff-paint-hunk))) + (oset it end (point)) + (oset it washer 'magit-diff-paint-hunk))) t)) (defun magit-diff-expansion-threshold (section) "Keep new diff sections collapsed if washing takes too long." - (and (memq (magit-section-type section) '(file)) + (and (magit-file-section-p section) (> (float-time (time-subtract (current-time) magit-refresh-start-time)) magit-diff-expansion-threshold) 'hide)) @@ -1878,6 +1939,13 @@ or a ref which is not a branch, then it inserts nothing." (when (equal (magit-object-type rev) "tag") (magit-insert-section (taginfo) (let ((beg (point))) + ;; "git verify-tag -v" would output what we need, but the gpg + ;; output is send to stderr and we have no control over the + ;; order in which stdout and stderr are inserted, which would + ;; make parsing hard. We are forced to use "git cat-file tag" + ;; instead, which inserts the signature instead of verifying + ;; it. We remove that later and then insert the verification + ;; output using "git verify-tag" (without the "-v"). (magit-git-insert "cat-file" "tag" rev) (goto-char beg) (forward-line 3) @@ -1889,7 +1957,14 @@ or a ref which is not a branch, then it inserts nothing." (magit-delete-line) (insert (propertize heading 'face 'magit-section-secondary-heading))) (magit-insert-heading) - (goto-char (point-max)) + (if (re-search-forward "-----BEGIN PGP SIGNATURE-----" nil t) + (progn + (let ((beg (match-beginning 0))) + (re-search-forward "-----END PGP SIGNATURE-----") + (delete-region beg (point))) + (insert ?\n) + (process-file magit-git-executable nil t nil "verify-tag" rev)) + (goto-char (point-max))) (insert ?\n)))) (defvar magit-commit-message-section-map @@ -2155,20 +2230,22 @@ Do not confuse this with `magit-diff-scope' (which see)." 'undefined)) ; i.e. committed and staged (t 'committed)))) ((derived-mode-p 'magit-status-mode) - (let ((stype (magit-section-type it))) + (let ((stype (oref it type))) (if (memq stype '(staged unstaged tracked untracked)) stype (pcase stype - (`file (let* ((parent (magit-section-parent it)) - (type (magit-section-type parent))) + (`file (let* ((parent (oref it parent)) + (type (oref parent type))) (if (eq type 'file) (magit-diff-type parent) type))) - (`hunk (-> it magit-section-parent magit-section-parent - magit-section-type)))))) + (`hunk (-> it + (oref parent) + (oref parent) + (oref type))))))) ((derived-mode-p 'magit-log-mode) (if (or (and (magit-section-match 'commit section) - (magit-section-children section)) + (oref section children)) (magit-section-match [* file commit] section)) 'committed 'undefined)) @@ -2200,10 +2277,10 @@ actually a `diff' but a `diffstat' section." (when (and section (or (not strict) (and (not (eq (magit-diff-type section) 'untracked)) - (not (eq (--when-let (magit-section-parent section) - (magit-section-type it)) + (not (eq (--when-let (oref section parent) + (oref it type)) 'diffstat))))) - (pcase (list (magit-section-type section) + (pcase (list (oref section type) (and siblings t) (magit-diff-use-hunk-region-p) ssection) @@ -2234,7 +2311,7 @@ actually a `diff' but a `diffstat' section." (defun magit-diff-unhighlight (section selection) "Remove the highlighting of the diff-related SECTION." - (when (eq (magit-section-type section) 'hunk) + (when (magit-hunk-section-p section) (magit-diff-paint-hunk section selection nil) t)) @@ -2245,7 +2322,7 @@ return nil. If SELECTION is non-nil, then it is a list of sections selected by the region, including SECTION. All of these sections are highlighted." (if (and (magit-section-match 'commit section) - (magit-section-children section)) + (oref section children)) (progn (if selection (dolist (section selection) (magit-diff-highlight-list section selection)) @@ -2270,37 +2347,36 @@ are highlighted." (_ (magit-section-highlight section nil)))) (defun magit-diff-highlight-list (section &optional selection) - (let ((beg (magit-section-start section)) - (cnt (magit-section-content section)) - (end (magit-section-end section))) + (let ((beg (oref section start)) + (cnt (oref section content)) + (end (oref section end))) (when (or (eq this-command 'mouse-drag-region) (not selection)) (unless (and (region-active-p) - (<= (region-beginning) - (magit-section-start section))) + (<= (region-beginning) beg)) (magit-section-make-overlay beg cnt 'magit-section-highlight)) - (unless (magit-section-hidden section) - (dolist (child (magit-section-children section)) + (unless (oref section hidden) + (dolist (child (oref section children)) (when (or (eq this-command 'mouse-drag-region) (not (and (region-active-p) (<= (region-beginning) - (magit-section-start child))))) + (oref child start))))) (magit-diff-highlight-recursive child selection))))) (when magit-diff-highlight-hunk-body (magit-section-make-overlay (1- end) end 'magit-section-highlight)))) (defun magit-diff-highlight-file (section &optional selection) (magit-diff-highlight-heading section selection) - (unless (magit-section-hidden section) - (dolist (child (magit-section-children section)) + (unless (oref section hidden) + (dolist (child (oref section children)) (magit-diff-highlight-recursive child selection)))) (defun magit-diff-highlight-heading (section &optional selection) (magit-section-make-overlay - (magit-section-start section) - (or (magit-section-content section) - (magit-section-end section)) - (pcase (list (magit-section-type section) + (oref section start) + (or (oref section content) + (oref section end)) + (pcase (list (oref section type) (and (member section selection) (not (eq this-command 'mouse-drag-region)))) (`(file t) 'magit-diff-file-heading-selection) @@ -2317,7 +2393,7 @@ are highlighted." (unless magit-diff-highlight-hunk-body (setq highlight nil)) (cond (highlight - (unless (magit-section-hidden section) + (unless (oref section hidden) (add-to-list 'magit-section-highlighted-sections section) (cond ((memq section magit-section-unhighlight-sections) (setq magit-section-unhighlight-sections @@ -2325,7 +2401,7 @@ are highlighted." (magit-diff-highlight-hunk-body (setq paint t))))) (t - (cond ((and (magit-section-hidden section) + (cond ((and (oref section hidden) (memq section magit-section-unhighlight-sections)) (add-to-list 'magit-section-highlighted-sections section) (setq magit-section-unhighlight-sections @@ -2334,10 +2410,12 @@ are highlighted." (setq paint t))))) (when paint (save-excursion - (goto-char (magit-section-start section)) - (let ((end (magit-section-end section)) + (goto-char (oref section start)) + (let ((end (oref section end)) (merging (looking-at "@@@")) - (stage nil)) + (stage nil) + (tab-width (magit-diff-tab-width + (magit-section-parent-value section)))) (forward-line) (while (< (point) end) (when (and magit-diff-hide-trailing-cr-characters @@ -2358,25 +2436,54 @@ are highlighted." (`(">" nil) nil))) 'magit-diff-conflict-heading) ((looking-at (if merging "^\\(\\+\\| \\+\\)" "^\\+")) - (magit-diff-paint-tab merging) + (magit-diff-paint-tab merging tab-width) (magit-diff-paint-whitespace merging) (or stage (if highlight 'magit-diff-added-highlight 'magit-diff-added))) ((looking-at (if merging "^\\(-\\| -\\)" "^-")) - (magit-diff-paint-tab merging) + (magit-diff-paint-tab merging tab-width) (if highlight 'magit-diff-removed-highlight 'magit-diff-removed)) (t - (magit-diff-paint-tab merging) + (magit-diff-paint-tab merging tab-width) (if highlight 'magit-diff-context-highlight 'magit-diff-context)))) (forward-line)))))) (magit-diff-update-hunk-refinement section)) -(defun magit-diff-paint-tab (merging) +(defvar magit-diff--tab-width-cache nil) + +(defun magit-diff-tab-width (file) + (setq file (expand-file-name file)) + (cl-flet ((cache (value) + (let ((elt (assoc file magit-diff--tab-width-cache))) + (if elt + (setcdr elt value) + (setq magit-diff--tab-width-cache + (cons (cons file value) + magit-diff--tab-width-cache)))) + value)) + (cond + ((not magit-diff-adjust-tab-width) + tab-width) + ((--when-let (find-buffer-visiting file) + (cache (buffer-local-value 'tab-width it)))) + ((--when-let (assoc file magit-diff--tab-width-cache) + (or (cdr it) + tab-width))) + ((or (eq magit-diff-adjust-tab-width 'always) + (and (numberp magit-diff-adjust-tab-width) + (>= magit-diff-adjust-tab-width + (nth 7 (file-attributes file))))) + (cache (buffer-local-value 'tab-width (find-file-noselect file)))) + (t + (cache nil) + tab-width)))) + +(defun magit-diff-paint-tab (merging width) (save-excursion (forward-char (if merging 2 1)) (while (= (char-after) ?\t) (put-text-property (point) (1+ (point)) - 'display (list (list 'space :width tab-width))) + 'display (list (list 'space :width width))) (forward-char)))) (defun magit-diff-paint-whitespace (merging) @@ -2409,28 +2516,28 @@ are highlighted." (defun magit-diff-update-hunk-refinement (&optional section) (if section - (unless (magit-section-hidden section) + (unless (oref section hidden) (pcase (list magit-diff-refine-hunk - (magit-section-refined section) + (oref section refined) (eq section (magit-current-section))) ((or `(all nil ,_) `(t nil t)) - (setf (magit-section-refined section) t) + (oset section refined t) (save-excursion - (goto-char (magit-section-start section)) + (goto-char (oref section start)) ;; `diff-refine-hunk' does not handle combined diffs. (unless (looking-at "@@@") ;; Avoid fsyncing many small temp files (let ((write-region-inhibit-fsync t)) (diff-refine-hunk))))) ((or `(nil t ,_) `(t t nil)) - (setf (magit-section-refined section) nil) - (remove-overlays (magit-section-start section) - (magit-section-end section) + (oset section refined nil) + (remove-overlays (oref section start) + (oref section end) 'diff-mode 'fine)))) (cl-labels ((recurse (section) (if (magit-section-match 'hunk section) (magit-diff-update-hunk-refinement section) - (--each (magit-section-children section) + (--each (oref section children) (recurse it))))) (recurse magit-root-section)))) @@ -2449,8 +2556,8 @@ are highlighted." "Highlight the hunk-internal region if any." (when (eq (magit-diff-scope section t) 'region) (magit-diff--make-hunk-overlay - (magit-section-start section) - (1- (magit-section-content section)) + (oref section start) + (1- (oref section content)) 'face 'magit-diff-lines-heading 'display (magit-diff-hunk-region-header section) 'after-string (magit-diff--hunk-after-string 'magit-diff-lines-heading)) @@ -2466,12 +2573,12 @@ for added and removed lines as for context lines." 'magit-diff-context))) (when magit-diff-unmarked-lines-keep-foreground (setq face (list :background (face-attribute face :background)))) - (magit-diff--make-hunk-overlay (magit-section-content section) + (magit-diff--make-hunk-overlay (oref section content) (magit-diff-hunk-region-beginning) 'face face 'priority 2) (magit-diff--make-hunk-overlay (1+ (magit-diff-hunk-region-end)) - (magit-section-end section) + (oref section end) 'face face 'priority 2))) @@ -2552,15 +2659,16 @@ https://github.com/magit/magit/pull/2293 for more details)." (defun magit-diff-inside-hunk-body-p () "Return non-nil if point is inside the body of a hunk." (and (magit-section-match 'hunk) - (> (point) (magit-section-content (magit-current-section))))) + (> (point) + (oref (magit-current-section) content)))) ;;; Diff Extract (defun magit-diff-file-header (section) - (when (eq (magit-section-type section) 'hunk) - (setq section (magit-section-parent section))) - (when (eq (magit-section-type section) 'file) - (magit-section-diff-header section))) + (when (magit-hunk-section-p section) + (setq section (oref section parent))) + (when (magit-file-section-p section) + (oref section header))) (defun magit-diff-hunk-region-header (section) (let ((patch (magit-diff-hunk-region-patch section))) @@ -2569,10 +2677,10 @@ https://github.com/magit/magit/pull/2293 for more details)." (defun magit-diff-hunk-region-patch (section &optional args) (let ((op (if (member "--reverse" args) "+" "-")) - (sbeg (magit-section-start section)) + (sbeg (oref section start)) (rbeg (magit-diff-hunk-region-beginning)) (rend (region-end)) - (send (magit-section-end section)) + (send (oref section end)) (patch nil)) (save-excursion (goto-char sbeg) diff --git a/elpa/magit-20171208.618/magit-ediff.el b/elpa/magit-20180118.313/magit-ediff.el similarity index 99% rename from elpa/magit-20171208.618/magit-ediff.el rename to elpa/magit-20180118.313/magit-ediff.el index b621629a..317bc3e1 100644 --- a/elpa/magit-20171208.618/magit-ediff.el +++ b/elpa/magit-20180118.313/magit-ediff.el @@ -1,6 +1,6 @@ ;;; magit-ediff.el --- Ediff extension for Magit -*- lexical-binding: t -*- -;; Copyright (C) 2010-2017 The Magit Project Contributors +;; Copyright (C) 2010-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. @@ -141,7 +141,7 @@ conflicts, including those already resolved by Git, use (let ((bufC ediff-buffer-C) (bufS smerge-ediff-buf)) (with-current-buffer bufS - (when (yes-or-no-p (format "Conflict resolution finished; save %s?" + (when (yes-or-no-p (format "Conflict resolution finished; save %s? " buffer-file-name)) (erase-buffer) (insert-buffer-substring bufC) @@ -285,7 +285,7 @@ mind at all, then it asks the user for a command to run." (interactive) (magit-section-case (hunk (save-excursion - (goto-char (magit-section-start (magit-section-parent it))) + (goto-char (oref (oref it parent) start)) (magit-ediff-dwim))) (t (let ((range (magit-diff--dwim)) diff --git a/elpa/magit-20171208.618/magit-extras.el b/elpa/magit-20180118.313/magit-extras.el similarity index 99% rename from elpa/magit-20171208.618/magit-extras.el rename to elpa/magit-20180118.313/magit-extras.el index d9f0889a..760f4f87 100644 --- a/elpa/magit-20171208.618/magit-extras.el +++ b/elpa/magit-20180118.313/magit-extras.el @@ -1,6 +1,6 @@ ;;; magit-extras.el --- additional functionality for Magit -*- lexical-binding: t -*- -;; Copyright (C) 2008-2017 The Magit Project Contributors +;; Copyright (C) 2008-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. @@ -153,7 +153,7 @@ is no file at point, then instead visit `default-directory'." (let ((default-directory topdir)) (mapcar #'file-relative-name files))) magit-log-buffer-file-locked)) - (user-error "Not inside a Git repository"))) + (magit--not-inside-repository-error))) ;;;###autoload (defun magit-do-async-shell-command (file) diff --git a/elpa/magit-20171208.618/magit-files.el b/elpa/magit-20180118.313/magit-files.el similarity index 99% rename from elpa/magit-20171208.618/magit-files.el rename to elpa/magit-20180118.313/magit-files.el index c5d170d7..dac132ca 100644 --- a/elpa/magit-20171208.618/magit-files.el +++ b/elpa/magit-20180118.313/magit-files.el @@ -1,6 +1,6 @@ ;;; magit-files.el --- finding files -*- lexical-binding: t -*- -;; Copyright (C) 2010-2017 The Magit Project Contributors +;; Copyright (C) 2010-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. diff --git a/elpa/magit-20171208.618/magit-git.el b/elpa/magit-20180118.313/magit-git.el similarity index 98% rename from elpa/magit-20171208.618/magit-git.el rename to elpa/magit-20180118.313/magit-git.el index 3c8766d7..f8acbe92 100644 --- a/elpa/magit-20171208.618/magit-git.el +++ b/elpa/magit-20180118.313/magit-git.el @@ -1,6 +1,6 @@ ;;; magit-git.el --- Git functionality -*- lexical-binding: t -*- -;; Copyright (C) 2010-2017 The Magit Project Contributors +;; Copyright (C) 2010-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. @@ -519,7 +519,13 @@ returning the truename." (if ,toplevel (let ((default-directory ,toplevel)) ,@body) - (error "Not inside a Git repository: %s" default-directory))))) + (magit--not-inside-repository-error))))) + +(defun magit--not-inside-repository-error () + (if (executable-find magit-git-executable) + (user-error "Not inside a Git repository: %s" default-directory) + (user-error "The `git' executable cannot be found. See %s" + "https://magit.vc/goto/e6a78ed2"))) (defun magit-inside-gitdir-p () "Return t if `default-directory' is below a repository directory." @@ -698,7 +704,7 @@ Sorted from longest to shortest CYGWIN name." (defun magit-file-at-point () (magit-section-case - (file (magit-section-value it)) + (file (oref it value)) (hunk (magit-section-parent-value it)))) (defun magit-current-file () @@ -898,22 +904,22 @@ to, or to some other symbolic-ref that points to the same ref." (defun magit-branch-at-point () (magit-section-case - (branch (magit-section-value it)) - (commit (magit-name-branch (magit-section-value it))))) + (branch (oref it value)) + (commit (magit-name-branch (oref it value))))) (defun magit-local-branch-at-point () (magit-section-case - (branch (let ((branch (magit-ref-maybe-qualify (magit-section-value it)))) + (branch (let ((branch (magit-ref-maybe-qualify (oref it value)))) (when (member branch (magit-list-local-branch-names)) branch))) - (commit (magit-name-local-branch (magit-section-value it))))) + (commit (magit-name-local-branch (oref it value))))) (defun magit-remote-branch-at-point () (magit-section-case - (branch (let ((branch (magit-section-value it))) + (branch (let ((branch (oref it value))) (when (member branch (magit-list-remote-branch-names)) branch))) - (commit (magit-name-remote-branch (magit-section-value it))))) + (commit (magit-name-remote-branch (oref it value))))) (defun magit-commit-at-point () (or (magit-section-when commit) @@ -923,10 +929,10 @@ to, or to some other symbolic-ref that points to the same ref." (defun magit-branch-or-commit-at-point () (or magit-buffer-refname (magit-section-case - (branch (magit-ref-maybe-qualify (magit-section-value it))) - (commit (let ((rev (magit-section-value it))) + (branch (magit-ref-maybe-qualify (oref it value))) + (commit (let ((rev (oref it value))) (or (magit-get-shortname rev) rev))) - (tag (magit-ref-maybe-qualify (magit-section-value it) "tags/"))) + (tag (magit-ref-maybe-qualify (oref it value) "tags/"))) (thing-at-point 'git-revision t) (and (derived-mode-p 'magit-revision-mode 'magit-merge-preview-mode) @@ -934,15 +940,15 @@ to, or to some other symbolic-ref that points to the same ref." (defun magit-tag-at-point () (magit-section-case - (tag (magit-section-value it)) - (commit (magit-name-tag (magit-section-value it))))) + (tag (oref it value)) + (commit (magit-name-tag (oref it value))))) (defun magit-stash-at-point () (magit-section-when stash)) (defun magit-remote-at-point () (magit-section-case - (remote (magit-section-value it)) + (remote (oref it value)) (branch (magit-section-parent-value it)))) (defun magit-get-current-branch () diff --git a/elpa/magit-20171208.618/magit-imenu.el b/elpa/magit-20180118.313/magit-imenu.el similarity index 90% rename from elpa/magit-20171208.618/magit-imenu.el rename to elpa/magit-20180118.313/magit-imenu.el index 83c5b6ab..77b27e9f 100644 --- a/elpa/magit-20171208.618/magit-imenu.el +++ b/elpa/magit-20180118.313/magit-imenu.el @@ -1,6 +1,6 @@ ;;; magit-imenu.el --- Integrate Imenu in magit major modes -*- lexical-binding: t -*- -;; Copyright (C) 2010-2017 The Magit Project Contributors +;; Copyright (C) 2010-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. @@ -55,19 +55,19 @@ This function is used as a helper for functions set as (while (magit-section--backward-find (lambda () (let* ((section (magit-current-section)) - (type (magit-section-type section)) - (parent (magit-section-parent section)) - (parent-type (magit-section-type parent))) + (type (oref section type)) + (parent (oref section parent)) + (parent-type (oref parent type))) (and (-contains-p entry-types type) (-contains-p menu-types parent-type))))) (let* ((section (magit-current-section)) (name (buffer-substring-no-properties (line-beginning-position) (line-end-position))) - (parent (magit-section-parent section)) + (parent (oref section parent)) (parent-title (buffer-substring-no-properties - (magit-section-start parent) - (1- (magit-section-content parent))))) + (oref parent start) + (1- (oref parent content))))) (puthash parent-title (cons (cons name (point)) (gethash parent-title entries (list))) @@ -86,7 +86,7 @@ This function is used as a value for (magit-section--backward-find (lambda () (-contains-p '(commit stash) - (magit-section-type (magit-current-section)))))) + (oref (magit-current-section) type))))) ;;;###autoload (defun magit-imenu--log-extract-index-name-function () @@ -109,10 +109,10 @@ This function is used as a value for `imenu-prev-index-position-function'." (magit-section--backward-find (lambda () - (and (equal (magit-section-type (magit-current-section)) 'file) - (not (equal (magit-section-type - (magit-section-parent (magit-current-section))) - 'diffstat)))))) + (let ((section (magit-current-section))) + (and (magit-file-section-p section) + (not (equal (oref (oref section parent) type) + 'diffstat))))))) ;;;###autoload (defun magit-imenu--diff-extract-index-name-function () @@ -204,9 +204,7 @@ This function is used as a value for `imenu-prev-index-position-function'." (magit-section--backward-find (lambda () - (eq - (magit-section-type (magit-current-section)) - 'process)))) + (eq (oref (magit-current-section) type) 'process)))) ;;;###autoload (defun magit-imenu--process-extract-index-name-function () diff --git a/elpa/magit-20171208.618/magit-log.el b/elpa/magit-20180118.313/magit-log.el similarity index 98% rename from elpa/magit-20171208.618/magit-log.el rename to elpa/magit-20180118.313/magit-log.el index 63bcedc4..91d4df70 100644 --- a/elpa/magit-20171208.618/magit-log.el +++ b/elpa/magit-20180118.313/magit-log.el @@ -1,6 +1,6 @@ ;;; magit-log.el --- inspect Git history -*- lexical-binding: t -*- -;; Copyright (C) 2010-2017 The Magit Project Contributors +;; Copyright (C) 2010-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. @@ -773,9 +773,9 @@ is displayed in the current frame." (interactive "p") (when (derived-mode-p 'magit-log-mode) (magit-section-when commit - (let ((parent-rev (format "%s^%s" (magit-section-value it) (or n 1)))) + (let ((parent-rev (format "%s^%s" (oref it value) (or n 1)))) (-if-let (parent-hash (magit-rev-parse "--short" parent-rev)) - (-if-let (section (--first (equal (magit-section-value it) + (-if-let (section (--first (equal (oref it value) parent-hash) (magit-section-siblings it 'next))) (magit-section-goto section) @@ -974,9 +974,9 @@ Do not add this to a hook variable." (ansi-color-apply-on-region (point-min) (point-max)))) (when (eq style 'cherry) (reverse-region (point-min) (point-max))) - (let ((magit-log-count 0) - (abbrev (magit-abbrev-length))) - (magit-wash-sequence (apply-partially 'magit-log-wash-rev style abbrev)) + (let ((magit-log-count 0)) + (magit-wash-sequence (apply-partially 'magit-log-wash-rev style + (magit-abbrev-length))) (if (derived-mode-p 'magit-log-mode) (when (eq magit-log-count (magit-log-get-commit-limit)) (magit-insert-section (longer) @@ -1019,8 +1019,8 @@ Do not add this to a hook variable." (cl-return-from magit-log-wash-rev t)) (magit-insert-section section (commit hash) (pcase style - (`stash (setf (magit-section-type section) 'stash)) - (`module (setf (magit-section-type section) 'module-commit)) + (`stash (oset section type 'stash)) + (`module (oset section type 'module-commit)) (`bisect-log (setq hash (magit-rev-parse "--short" hash)))) (when cherry (when (and (derived-mode-p 'magit-refs-mode) @@ -1098,7 +1098,7 @@ Do not add this to a hook variable." (let ((limit (save-excursion (and (re-search-forward non-graph-re nil t) (match-beginning 0))))) - (unless (magit-section-content magit-insert-section--current) + (unless (oref magit-insert-section--current content) (magit-insert-heading)) (delete-char (if (looking-at "\n") 1 4)) (magit-diff-wash-diffs (list "--stat") limit)) @@ -1143,7 +1143,7 @@ having to press \"+\". This function is called by `magit-section-movement-hook' and exists mostly for backward compatibility reasons." - (when (and (eq (magit-section-type section) 'longer) + (when (and (eq (oref section type) 'longer) magit-log-auto-more) (magit-log-double-commit-limit) (forward-line -1) @@ -1204,13 +1204,12 @@ If there is no blob buffer in the same frame, then do nothing." (defun magit-log-goto-same-commit () (-when-let* ((prev magit-previous-section) (rev (cond ((magit-section-match 'commit prev) - (magit-section-value prev)) + (oref prev value)) ((magit-section-match 'branch prev) - (magit-rev-format - "%h" (magit-section-value prev))))) - (same (--first (equal (magit-section-value it) rev) - (magit-section-children magit-root-section)))) - (goto-char (magit-section-start same)))) + (magit-rev-format "%h" (oref prev value))))) + (same (--first (equal (oref it value) rev) + (oref magit-root-section children)))) + (goto-char (oref same start)))) ;;; Log Margin @@ -1531,7 +1530,7 @@ then show the last `magit-log-section-commit-count' commits." '((unpushed . "@{upstream}..") (status)) magit-insert-section--oldroot)) - (magit-section-hidden it) + (oref it hidden) nil)) (magit-insert-unpushed-to-upstream (--if-let (and magit-insert-section--oldroot @@ -1540,7 +1539,7 @@ then show the last `magit-log-section-commit-count' commits." magit-log-section-commit-count)) (status)) magit-insert-section--oldroot)) - (magit-section-hidden it) + (oref it hidden) t))))) (defun magit-insert-unpushed-to-upstream (&optional collapse) diff --git a/elpa/magit-20171208.618/magit-margin.el b/elpa/magit-20180118.313/magit-margin.el similarity index 99% rename from elpa/magit-20171208.618/magit-margin.el rename to elpa/magit-20180118.313/magit-margin.el index 5f2bef67..552839e9 100644 --- a/elpa/magit-20171208.618/magit-margin.el +++ b/elpa/magit-20180118.313/magit-margin.el @@ -1,6 +1,6 @@ ;;; magit-margin.el --- margins in Magit buffers -*- lexical-binding: t -*- -;; Copyright (C) 2010-2017 The Magit Project Contributors +;; Copyright (C) 2010-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. diff --git a/elpa/magit-20171208.618/magit-mode.el b/elpa/magit-20180118.313/magit-mode.el similarity index 93% rename from elpa/magit-20171208.618/magit-mode.el rename to elpa/magit-20180118.313/magit-mode.el index 7e1a0bfe..eddb83f9 100644 --- a/elpa/magit-20171208.618/magit-mode.el +++ b/elpa/magit-20180118.313/magit-mode.el @@ -1,6 +1,6 @@ ;;; magit-mode.el --- create and refresh Magit buffers -*- lexical-binding: t -*- -;; Copyright (C) 2010-2017 The Magit Project Contributors +;; Copyright (C) 2010-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. @@ -43,6 +43,8 @@ (defvar magit-revision-show-xref-buttons) ;; For `magit-refresh' and `magit-refresh-all' (declare-function magit-auto-revert-buffers 'magit-autorevert) +;; For `magit-refresh-buffer' +(declare-function magit-process-unset-mode-line-error-status 'magit-process) (require 'format-spec) (require 'help-mode) @@ -535,7 +537,8 @@ Magit is documented in info node `(magit)'." (linum-mode -1)) (when (and (fboundp 'nlinum-mode) (bound-and-true-p global-nlinum-mode)) - (nlinum-mode -1))) + (nlinum-mode -1)) + (add-hook 'kill-buffer-hook 'magit-preserve-section-visibility-cache)) (defvar-local magit-region-overlays nil) @@ -769,14 +772,15 @@ thinking a buffer belongs to a repo that it doesn't.") (and create (let ((default-directory topdir)) (magit-generate-new-buffer mode value)))) - (user-error "Not inside a Git repository"))) + (magit--not-inside-repository-error))) (defun magit-generate-new-buffer (mode &optional value) (let* ((name (funcall magit-generate-buffer-name-function mode value)) (buffer (generate-new-buffer name))) (with-current-buffer buffer (setq magit--default-directory default-directory) - (setq magit-buffer-locked-p (and value t))) + (setq magit-buffer-locked-p (and value t)) + (magit-restore-section-visibility-cache mode)) (when magit-uniquify-buffer-names (add-to-list 'uniquify-list-buffers-directory-modes mode) (with-current-buffer buffer @@ -1011,6 +1015,7 @@ Run hooks `magit-pre-refresh-hook' and `magit-post-refresh-hook'." (setq magit-section-highlighted-section nil) (setq magit-section-highlighted-sections nil) (setq magit-section-unhighlight-sections nil) + (magit-process-unset-mode-line-error-status) (let ((inhibit-read-only t)) (erase-buffer) (save-excursion @@ -1029,10 +1034,10 @@ Run hooks `magit-pre-refresh-hook' and `magit-post-refresh-hook'." (defun magit-refresh-get-relative-position () (-when-let (section (magit-current-section)) - (let ((start (magit-section-start section))) + (let ((start (oref section start))) (list (count-lines start (point)) (- (point) (line-beginning-position)) - (and (eq (magit-section-type section) 'hunk) + (and (magit-hunk-section-p section) (region-active-p) (progn (goto-char (line-beginning-position)) (when (looking-at "^[-+]") (forward-line)) @@ -1095,7 +1100,9 @@ if you so desire." (let ((msg (current-message))) (magit-save-repository-buffers (eq magit-save-repository-buffers 'dontask)) - (when (and msg (not (equal msg (current-message)))) + (when (and msg + (current-message) + (not (equal msg (current-message)))) (message "%s" msg))))) (add-hook 'magit-pre-refresh-hook #'magit-maybe-save-repository-buffers) @@ -1228,5 +1235,73 @@ Currently `magit-log-mode', `magit-reflog-mode', (float-time (time-subtract (current-time) start)))) (run-hooks hook)))) +(defvar magit-repository-local-cache nil + "Alist mapping `magit-toplevel' paths to alists of key/value pairs.") + +(defun magit-repository-local-repository () + "Return the key for the current repository." + (or (bound-and-true-p magit--default-directory) + (magit-toplevel))) + +(defun magit-repository-local-set (key value &optional repository) + "Set the repository-local VALUE for KEY. + +Unless specified, REPOSITORY is the current buffer's repository. + +If REPOSITORY is nil (meaning there is no current repository), +then the value is not cached, and we return nil." + (let* ((repokey (or repository (magit-repository-local-repository))) + (cache (assoc repokey magit-repository-local-cache))) + ;; Don't cache values for a nil REPOSITORY, as the 'set' and 'get' + ;; calls for some KEY may happen in unrelated contexts. + (when repokey + (if cache + (let ((keyvalue (assoc key (cdr cache)))) + (if keyvalue + ;; Update pre-existing value for key. + (setcdr keyvalue value) + ;; No such key in repository-local cache. + (push (cons key value) (cdr cache)))) + ;; No cache for this repository. + (push (cons repokey (list (cons key value))) + magit-repository-local-cache))))) + +(defun magit-repository-local-exists-p (key &optional repository) + "Non-nil when a repository-local value exists for KEY. + +Returns a (KEY . value) cons cell. + +The KEY is matched using `equal'. + +Unless specified, REPOSITORY is the current buffer's repository." + (let* ((repokey (or repository (magit-repository-local-repository))) + (cache (assoc repokey magit-repository-local-cache))) + (and cache + (assoc key (cdr cache))))) + +(defun magit-repository-local-get (key &optional default repository) + "Return the repository-local value for KEY. + +Return DEFAULT if no value for KEY exists. + +The KEY is matched using `equal'. + +Unless specified, REPOSITORY is the current buffer's repository." + (let ((keyvalue (magit-repository-local-exists-p key repository))) + (if keyvalue + (cdr keyvalue) + default))) + +(defun magit-repository-local-delete (key &optional repository) + "Delete the repository-local value for KEY. + +Unless specified, REPOSITORY is the current buffer's repository." + (let* ((repokey (or repository (magit-repository-local-repository))) + (cache (assoc repokey magit-repository-local-cache))) + (when cache + ;; There is no `assoc-delete-all'. + (setf (cdr cache) + (cl-delete key (cdr cache) :key #'car :test #'equal))))) + (provide 'magit-mode) ;;; magit-mode.el ends here diff --git a/elpa/magit-20171208.618/magit-notes.el b/elpa/magit-20180118.313/magit-notes.el similarity index 99% rename from elpa/magit-20171208.618/magit-notes.el rename to elpa/magit-20180118.313/magit-notes.el index 866665ca..79b2fa53 100644 --- a/elpa/magit-20171208.618/magit-notes.el +++ b/elpa/magit-20180118.313/magit-notes.el @@ -1,6 +1,6 @@ ;;; magit-notes.el --- notes support -*- lexical-binding: t -*- -;; Copyright (C) 2010-2017 The Magit Project Contributors +;; Copyright (C) 2010-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. diff --git a/elpa/magit-20171208.618/magit-obsolete.el b/elpa/magit-20180118.313/magit-obsolete.el similarity index 84% rename from elpa/magit-20171208.618/magit-obsolete.el rename to elpa/magit-20180118.313/magit-obsolete.el index 3406b29a..b5439cb6 100644 --- a/elpa/magit-20171208.618/magit-obsolete.el +++ b/elpa/magit-20180118.313/magit-obsolete.el @@ -1,6 +1,6 @@ ;;; magit-obsolete.el --- obsolete definitions -*- lexical-binding: t -*- -;; Copyright (C) 2010-2017 The Magit Project Contributors +;; Copyright (C) 2010-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. @@ -137,5 +137,15 @@ use `magit-pre-refresh-hook', `magit-post-refresh-hook', (make-obsolete-variable 'magit-no-confirm-default 'magit-dwim-selection "Magit 2.12.0") +(make-obsolete 'magit-section-type "use (oref ... type) instead" "Magit 2.12.0") +(make-obsolete 'magit-section-value "use (oref ... value) instead" "Magit 2.12.0") +(make-obsolete 'magit-section-start "use (oref ... start) instead" "Magit 2.12.0") +(make-obsolete 'magit-section-content "use (oref ... content) instead" "Magit 2.12.0") +(make-obsolete 'magit-section-end "use (oref ... end) instead" "Magit 2.12.0") +(make-obsolete 'magit-section-hidden "use (oref ... hidden) instead" "Magit 2.12.0") +(make-obsolete 'magit-section-washer "use (oref ... washer) instead" "Magit 2.12.0") +(make-obsolete 'magit-section-parent "use (oref ... parent) instead" "Magit 2.12.0") +(make-obsolete 'magit-section-children "use (oref ... children) instead" "Magit 2.12.0") + (provide 'magit-obsolete) ;;; magit-obsolete.el ends here diff --git a/elpa/magit-20171208.618/magit-pkg.el b/elpa/magit-20180118.313/magit-pkg.el similarity index 79% rename from elpa/magit-20171208.618/magit-pkg.el rename to elpa/magit-20180118.313/magit-pkg.el index 3ada08e9..79a8d89f 100644 --- a/elpa/magit-20171208.618/magit-pkg.el +++ b/elpa/magit-20180118.313/magit-pkg.el @@ -1,4 +1,4 @@ -(define-package "magit" "20171208.618" "A Git porcelain inside Emacs." +(define-package "magit" "20180118.313" "A Git porcelain inside Emacs." '((emacs "24.4") (async "20170823") (dash "20170810") diff --git a/elpa/magit-20171208.618/magit-process.el b/elpa/magit-20180118.313/magit-process.el similarity index 80% rename from elpa/magit-20171208.618/magit-process.el rename to elpa/magit-20180118.313/magit-process.el index 77e5c9cd..6743f08a 100644 --- a/elpa/magit-20171208.618/magit-process.el +++ b/elpa/magit-20180118.313/magit-process.el @@ -1,6 +1,6 @@ ;;; magit-process.el --- process functionality -*- lexical-binding: t -*- -;; Copyright (C) 2010-2017 The Magit Project Contributors +;; Copyright (C) 2010-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. @@ -99,6 +99,18 @@ When this is nil, no sections are ever removed." :group 'magit-process :type '(choice (const :tag "Never remove old sections" nil) integer)) +(defcustom magit-process-error-tooltip-max-lines 20 + "The number of lines for `magit-process-error-lines' to return. + +These are displayed in a tooltip for `mode-line-process' errors. + +If `magit-process-error-tooltip-max-lines' is nil, the tooltip +displays the text of `magit-process-error-summary' instead." + :package-version '(magit . "2.12.0") + :group 'magit-process + :type '(choice (const :tag "Use summary line" nil) + integer)) + (defcustom magit-credential-cache-daemon-socket (--some (-let [(prog . args) (split-string it)] (if (and prog @@ -189,6 +201,12 @@ non-nil, then the password is read from the user instead." :group 'magit-process :type 'boolean) +(defcustom magit-process-display-mode-line-error t + "Whether Magit should retain and highlight process errors in the mode line." + :package-version '(magit . "2.12.0") + :group 'magit-process + :type 'boolean) + (defface magit-process-ok '((t :inherit magit-section-heading :foreground "green")) "Face for zero exit-status." @@ -204,6 +222,13 @@ non-nil, then the password is read from the user instead." "Face for `mode-line-process' status when Git is running for side-effects." :group 'magit-faces) +(defface magit-mode-line-process-error + '((t :inherit error)) + "Face for `mode-line-process' error status. + +Used when `magit-process-display-mode-line-error' is non-nil." + :group 'magit-faces) + ;;; Process Mode (defvar magit-process-mode-map @@ -261,7 +286,7 @@ optional NODISPLAY is non-nil also display it." "Kill the process at point." (interactive) (magit-section-when process - (let ((process (magit-section-value it))) + (let ((process (oref it value))) (if (eq (process-status process) 'run) (when (magit-confirm 'kill-process) (kill-process process)) @@ -515,7 +540,7 @@ Magit status buffer." (process-put process 'default-dir default-directory) (when inhibit-magit-refresh (process-put process 'inhibit-refresh t)) - (setf (magit-section-process section) process) + (oset section process process) (with-current-buffer process-buf (set-marker (process-mark process) (point))) (when input @@ -523,7 +548,7 @@ Magit status buffer." (process-send-region process (point-min) (point-max)) (process-send-eof process))) (setq magit-this-process process) - (setf (magit-section-value section) process) + (oset section value process) (magit-process-display-buffer process) process)) @@ -574,23 +599,23 @@ Magit status buffer." (defun magit-process-truncate-log () (let* ((head nil) - (tail (magit-section-children magit-root-section)) + (tail (oref magit-root-section children)) (count (length tail))) (when (> (1+ count) magit-process-log-max) (while (and (cdr tail) (> count (/ magit-process-log-max 2))) (let* ((inhibit-read-only t) (section (car tail)) - (process (magit-section-process section))) + (process (oref section process))) (cond ((not process)) ((memq (process-status process) '(exit signal)) - (delete-region (magit-section-start section) - (1+ (magit-section-end section))) + (delete-region (oref section start) + (1+ (oref section end))) (cl-decf count)) (t (push section head)))) (pop tail)) - (setf (magit-section-children magit-root-section) + (oset magit-root-section children (nconc (reverse head) tail))))) (defun magit-process-sentinel (process event) @@ -609,8 +634,7 @@ Magit status buffer." (magit-refresh)) (with-temp-buffer (setq default-directory (process-get process 'default-dir)) - (magit-refresh))))) - (force-mode-line-update t))) + (magit-refresh))))))) (defun magit-sequencer-process-sentinel (process event) "Special sentinel used by `magit-run-git-sequencer'." @@ -630,7 +654,7 @@ Magit status buffer." ((or "rebase" "am") 'rebase-sequence) ((or "cherry-pick" "revert") 'sequence))) (status))) - (goto-char (magit-section-start it)) + (goto-char (oref it start)) (magit-section-update-highlight)))))))) (defun magit-process-filter (proc string) @@ -695,9 +719,11 @@ If found, return the password. Otherwise, return nil." (defun magit-process-password-prompt (process string) "Find a password based on prompt STRING and send it to git. -First try the functions in `magit-process-find-password-functions'. -If none of them returns a password, then read it from the user -instead." +Use `magit-process-password-prompt-regexps' to find a known +prompt. If and only if one is found, then call functions in +`magit-process-find-password-functions' until one of them returns +the password. If all function return nil, then read the password +from the user." (--when-let (magit-process-match-prompt magit-process-password-prompt-regexps string) (process-send-string @@ -793,26 +819,146 @@ as argument." (advice-add 'tramp-sh-handle-process-file :around 'tramp-sh-handle-process-file--magit-tramp-process-environment) +(defvar magit-mode-line-process-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd " ") + 'magit-process-buffer) + map) + "Keymap for `mode-line-process'.") + (defun magit-process-set-mode-line (program args) + "Display the git command (sans arguments) in the mode line." (when (equal program magit-git-executable) (setq args (nthcdr (length magit-git-global-arguments) args))) (let ((str (concat " " (propertize (concat program (and args (concat " " (car args)))) + 'mouse-face 'highlight + 'keymap magit-mode-line-process-map + 'help-echo "mouse-1: Show process buffer" 'face 'magit-mode-line-process)))) + (magit-repository-local-set 'mode-line-process str) + (dolist (buf (magit-mode-get-buffers)) + (with-current-buffer buf + (setq mode-line-process str))) + (force-mode-line-update t))) + +(declare-function magit-repository-local-repository "magit-mode") + +(defun magit-process-set-mode-line-error-status (&optional error str) + "Apply an error face to the string set by `magit-process-set-mode-line'. + +If ERROR is supplied, include it in the `mode-line-process' tooltip. + +If STR is supplied, it replaces the `mode-line-process' text." + (setq str (or str (magit-repository-local-get 'mode-line-process))) + (when str + (setq error (format "%smouse-1: Show process buffer" + (if (stringp error) + (concat error "\n\n") + ""))) + (setq str (concat " " (propertize + (substring-no-properties str 1) + 'mouse-face 'highlight + 'keymap magit-mode-line-process-map + 'help-echo error + 'face 'magit-mode-line-process-error))) + (magit-repository-local-set 'mode-line-process str) (dolist (buf (magit-mode-get-buffers)) (with-current-buffer buf - (setq mode-line-process str))))) + (setq mode-line-process str))) + (force-mode-line-update t) + ;; We remove any error status from the mode line when a magit + ;; buffer is refreshed (see `magit-refresh-buffer'), but we must + ;; ensure that we ignore any refreshes during the remainder of the + ;; current command -- otherwise a newly-set error status would be + ;; removed before it was seen. We set a flag which prevents the + ;; status from being removed prior to the next command, so that + ;; the error status is guaranteed to remain visible until then. + (let ((repokey (magit-repository-local-repository))) + ;; The following closure captures the repokey value, and is + ;; added to `pre-command-hook'. + (cl-labels ((enable-magit-process-unset-mode-line + () ;; Remove ourself from the hook variable, so + ;; that we only run once. + (remove-hook 'pre-command-hook + #'enable-magit-process-unset-mode-line) + ;; Clear the inhibit flag for the repository in + ;; which we set it. + (magit-repository-local-set + 'inhibit-magit-process-unset-mode-line nil repokey))) + ;; Set the inhibit flag until the next command is invoked. + (magit-repository-local-set + 'inhibit-magit-process-unset-mode-line t repokey) + (add-hook 'pre-command-hook + #'enable-magit-process-unset-mode-line))))) + +(defun magit-process-unset-mode-line-error-status () + "Remove any current error status from the mode line." + (let ((status (or mode-line-process + (magit-repository-local-get 'mode-line-process)))) + (when (and status + (eq (get-text-property 1 'face status) + 'magit-mode-line-process-error)) + (magit-process-unset-mode-line)))) (defun magit-process-unset-mode-line () - (dolist (buf (magit-mode-get-buffers)) - (with-current-buffer buf (setq mode-line-process nil)))) + "Remove the git command from the mode line." + (unless (magit-repository-local-get 'inhibit-magit-process-unset-mode-line) + (magit-repository-local-set 'mode-line-process nil) + (dolist (buf (magit-mode-get-buffers)) + (with-current-buffer buf (setq mode-line-process nil))) + (force-mode-line-update t))) (defvar magit-process-error-message-regexps (list "^\\*ERROR\\*: Canceled by user$" - "^\\(?:error\\|fatal\\|git\\): \\(.*\\)$")) + "^\\(?:error\\|fatal\\|git\\): \\(.*\\)$" + "^\\(Cannot rebase:.*\\)$")) (define-error 'magit-git-error "Git error") +(defun magit-process-error-summary (process-buf section) + "A one-line error summary from the given SECTION." + (or (and (buffer-live-p process-buf) + (with-current-buffer process-buf + (and (oref section content) + (save-excursion + (goto-char (oref section end)) + (run-hook-wrapped + 'magit-process-error-message-regexps + (lambda (re) + (save-excursion + (and (re-search-backward + re (oref section start) t) + (or (match-string-no-properties 1) + (and (not magit-process-raise-error) + 'suppressed)))))))))) + "Git failed")) + +(defun magit-process-error-tooltip (process-buf section) + "Returns the text from SECTION of the PROCESS-BUF buffer. + +Limited by `magit-process-error-tooltip-max-lines'." + (and (integerp magit-process-error-tooltip-max-lines) + (> magit-process-error-tooltip-max-lines 0) + (buffer-live-p process-buf) + (with-current-buffer process-buf + (save-excursion + (goto-char (or (oref section content) + (oref section start))) + (buffer-substring-no-properties + (point) + (save-excursion + (forward-line magit-process-error-tooltip-max-lines) + (goto-char + (if (> (point) (oref section end)) + (oref section end) + (point))) + ;; Remove any trailing whitespace. + (when (re-search-backward "[^[:space:]\n]" + (oref section start) t) + (forward-char 1)) + (point))))))) + (defvar-local magit-this-error nil) (defvar magit-process-finish-apply-ansi-colors nil) @@ -829,9 +975,8 @@ as argument." (dired-uncache default-dir)) (when (buffer-live-p process-buf) (with-current-buffer process-buf - (magit-process-unset-mode-line) (let ((inhibit-read-only t) - (marker (magit-section-start section))) + (marker (oref section start))) (goto-char marker) (save-excursion (delete-char 3) @@ -843,35 +988,32 @@ as argument." 'magit-process-ng))) (set-marker-insertion-type marker t)) (when magit-process-finish-apply-ansi-colors - (ansi-color-apply-on-region (magit-section-content section) - (magit-section-end section))) - (if (= (magit-section-end section) + (ansi-color-apply-on-region (oref section content) + (oref section end))) + (if (= (oref section end) (+ (line-end-position) 2)) (save-excursion (goto-char (1+ (line-end-position))) (delete-char -1) - (setf (magit-section-content section) nil)) + (oset section content nil)) (let ((buf (magit-process-buffer t))) (when (and (= arg 0) (not (--any-p (eq (window-buffer it) buf) (window-list)))) (magit-section-hide section))))))) - (unless (= arg 0) - (let ((msg - (or (and (buffer-live-p process-buf) - (with-current-buffer process-buf - (and (magit-section-content section) - (save-excursion - (goto-char (magit-section-end section)) - (run-hook-wrapped - 'magit-process-error-message-regexps - (lambda (re) - (save-excursion - (and (re-search-backward re nil t) - (or (match-string-no-properties 1) - (and (not magit-process-raise-error) - 'suppressed)))))))))) - "Git failed"))) + (if (= arg 0) + ;; Unset the `mode-line-process' value upon success. + (magit-process-unset-mode-line) + ;; Otherwise process the error. + (let ((msg (magit-process-error-summary process-buf section))) + ;; Change `mode-line-process' to an error face upon failure. + (if magit-process-display-mode-line-error + (magit-process-set-mode-line-error-status + (or (magit-process-error-tooltip process-buf section) + msg)) + (magit-process-unset-mode-line)) + ;; Either signal the error, or else display the error summary in + ;; the status buffer and with a message in the echo area. (cond (magit-process-raise-error (signal 'magit-git-error (list (format "%s (in %s)" msg default-dir)))) @@ -910,5 +1052,25 @@ as argument." (pop-to-buffer buf)))))) process)))))) +(defun magit--log-action (summary line list) + (let (heading lines) + (if (cdr list) + (progn (setq heading (funcall summary list)) + (setq lines (mapcar line list))) + (setq heading (funcall line (car list)))) + (with-current-buffer (magit-process-buffer t) + (goto-char (1- (point-max))) + (let ((inhibit-read-only t)) + (magit-insert-section (message) + (magit-insert-heading (concat " * " heading)) + (when lines + (dolist (line lines) + (insert line "\n")) + (insert "\n")))) + (let ((inhibit-message t)) + (when heading + (setq lines (cons heading lines))) + (message (mapconcat #'identity lines "\n")))))) + (provide 'magit-process) ;;; magit-process.el ends here diff --git a/elpa/magit-20171208.618/magit-refs.el b/elpa/magit-20180118.313/magit-refs.el similarity index 92% rename from elpa/magit-20171208.618/magit-refs.el rename to elpa/magit-20180118.313/magit-refs.el index ca5e649d..79bd73bb 100644 --- a/elpa/magit-20171208.618/magit-refs.el +++ b/elpa/magit-20180118.313/magit-refs.el @@ -1,6 +1,6 @@ ;;; magit-refs.el --- listing references -*- lexical-binding: t -*- -;; Copyright (C) 2010-2017 The Magit Project Contributors +;; Copyright (C) 2010-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. @@ -73,6 +73,15 @@ To change the value in an existing buffer use the command (put 'magit-refs-show-commit-count 'safe-local-variable 'symbolp) (put 'magit-refs-show-commit-count 'permanent-local t) +(defcustom magit-refs-show-remote-prefix nil + "Whether to show the remote prefix in lists of remote branches. + +This is redundant because the name of the remote is already shown +in the heading preceeding the list of its branches." + :package-version '(magit . "2.12.0") + :group 'magit-refs + :type 'boolean) + (defcustom magit-refs-margin (list nil (nth 1 magit-log-margin) @@ -222,7 +231,8 @@ Type \\[magit-reset] to reset `HEAD' to the commit at point. (magit-set-header-line-format (format "%s %s" ref (mapconcat #'identity args " "))) (magit-insert-section (branchbuf) - (run-hooks 'magit-refs-sections-hook))) + (run-hooks 'magit-refs-sections-hook)) + (add-hook 'kill-buffer-hook 'magit-preserve-section-visibility-cache)) ;;; Commands @@ -334,7 +344,7 @@ different, but only if you have customized the option (interactive) (if (and (derived-mode-p 'magit-refs-mode) (magit-section-match '(branch tag))) - (let ((ref (magit-section-value (magit-current-section)))) + (let ((ref (oref (magit-current-section) value))) (cond (current-prefix-arg (cond ((memq 'focus-on-ref magit-visit-ref-behavior) (magit-show-refs ref)) @@ -421,11 +431,14 @@ current branch. The description is taken from the Git variable line is inserted at all." (-when-let* ((branch (magit-get-current-branch)) (desc (magit-get "branch" branch "description")) - (desc-lines (split-string desc "\n"))) + (desc (split-string desc "\n"))) + (when (equal (car (last desc)) "") + (setq desc (butlast desc))) (magit-insert-section (branchdesc branch t) - (magit-insert-heading branch ": " (car desc-lines)) - (insert (mapconcat 'identity (cdr desc-lines) "\n")) - (insert "\n\n")))) + (magit-insert-heading branch ": " (car desc)) + (when (cdr desc) + (insert (mapconcat 'identity (cdr desc) "\n")) + (insert "\n\n"))))) (defun magit-insert-local-branches () "Insert sections showing all local branches." @@ -456,7 +469,8 @@ line is inserted at all." (magit-insert-heading (let ((pull (magit-get "remote" remote "url")) (push (magit-get "remote" remote "pushurl"))) - (format "%s (%s):" (capitalize remote) + (format (propertize "Remote %s (%s):" 'face 'magit-section-heading) + (propertize remote 'face 'magit-branch-remote) (concat pull (and pull push ", ") push)))) (dolist (line (magit-git-lines "for-each-ref" "--format=\ %(symref:short)%00%(refname:short)%00%(objectname:short)%00%(subject)" @@ -468,23 +482,30 @@ line is inserted at all." (magit-insert-symref branch symref 'magit-branch-remote) (magit-insert-branch branch magit-refs-remote-branch-format nil - 'magit-branch-remote hash message)))) + 'magit-branch-remote hash message nil nil nil + (and (not magit-refs-show-remote-prefix) + (1+ (length remote))))))) (insert ?\n) (magit-make-margin-overlay nil t)))) -(defun magit-insert-branch (branch format &rest args) +(defun magit-insert-branch (branch format &optional current face hash + message upstream uref utrack substring) "For internal use, don't add to a hook." (unless magit-refs-show-commit-count (setq format (replace-regexp-in-string "%[0-9]\\([cC]\\)" "%1\\1" format t))) (if branch (magit-insert-section it (branch branch t) - (apply #'magit-insert-branch-1 it branch format args)) + (magit-insert-branch-1 it branch format + current face hash message + upstream uref utrack substring)) (magit-insert-section it (commit (magit-rev-parse "HEAD") t) - (apply #'magit-insert-branch-1 it nil format args)))) + (magit-insert-branch-1 it nil format + current face hash message + upstream uref utrack substring)))) (defun magit-insert-branch-1 - (section branch format current face &optional hash message - upstream uref utrack) + (section branch format current face + &optional hash message upstream uref utrack substring) "For internal use, don't add to a hook." (let* ((focus (car magit-refresh-args)) (head (or focus "HEAD")) @@ -500,6 +521,8 @@ line is inserted at all." (if (string-prefix-p "refs/heads/" uref) 'magit-branch-local 'magit-branch-remote)))) + (when (and substring branch) + (setq branch (substring branch substring))) (magit-insert-heading (format-spec format @@ -580,8 +603,8 @@ line is inserted at all." ;;;; Cherry Sections (defun magit-refs-insert-cherry-commits (head ref section) - (if (magit-section-hidden section) - (setf (magit-section-washer section) + (if (oref section hidden) + (oset section washer (apply-partially #'magit-refs-insert-cherry-commits-1 head ref section)) (magit-refs-insert-cherry-commits-1 head ref section))) diff --git a/elpa/magit-20171208.618/magit-remote.el b/elpa/magit-20180118.313/magit-remote.el similarity index 88% rename from elpa/magit-20171208.618/magit-remote.el rename to elpa/magit-20180118.313/magit-remote.el index 29534a15..67ae3140 100644 --- a/elpa/magit-20171208.618/magit-remote.el +++ b/elpa/magit-20180118.313/magit-remote.el @@ -1,6 +1,6 @@ ;;; magit-remote.el --- transfer Git commits -*- lexical-binding: t -*- -;; Copyright (C) 2008-2017 The Magit Project Contributors +;; Copyright (C) 2008-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. @@ -124,10 +124,12 @@ to be used to view and change remote related variables." magit-remote-config-variables)) :switches '("Switches for add" (?f "Fetch after add" "-f")) - :actions '((?a "Add" magit-remote-add) - (?r "Rename" magit-remote-rename) - (?k "Remove" magit-remote-remove) - (?C "Configure..." magit-remote-config-popup))) + :actions '((?a "Add" magit-remote-add) + (?C "Configure..." magit-remote-config-popup) + (?r "Rename" magit-remote-rename) + (?p "Prune refspecs" magit-remote-prune-refspecs) + (?k "Remove" magit-remote-remove)) + :max-action-columns 2) ;;;; Commands @@ -160,13 +162,97 @@ to be used to view and change remote related variables." (let ((remote (magit-read-remote "Rename remote"))) (list remote (magit-read-string-ns (format "Rename %s to" remote))))) (unless (string= old new) - (magit-run-git "remote" "rename" old new))) + (magit-call-git "remote" "rename" old new) + (magit-remote--cleanup-push-variables old new) + (magit-refresh))) ;;;###autoload (defun magit-remote-remove (remote) "Delete the remote named REMOTE." (interactive (list (magit-read-remote "Delete remote"))) - (magit-run-git "remote" "rm" remote)) + (magit-call-git "remote" "rm" remote) + (magit-remote--cleanup-push-variables remote) + (magit-refresh)) + +(defun magit-remote--cleanup-push-variables (remote &optional new-name) + (magit-with-toplevel + (when (equal (magit-get "remote.pushDefault") remote) + (magit-set new-name "remote.pushDefault")) + (dolist (var (magit-git-lines "config" "--name-only" + "--get-regexp" "^branch\.[^.]*\.pushRemote" + (format "^%s$" remote))) + (magit-call-git "config" (and (not new-name) "--unset") var new-name)))) + +(defconst magit--refspec-re "\\`\\(\\+\\)?\\([^:]+\\):\\(.*\\)\\'") + +;;;###autoload +(defun magit-remote-prune-refspecs (remote) + "Remove stale refspecs and tracking branches for REMOTE. +If there are only stale refspecs, then offer to either delete the +remote or replace the refspecs with the default refspec instead." + (interactive (list (magit-read-remote "Prune refspecs of remote"))) + (let* ((tracking-refs (magit-list-remote-branches remote)) + (remote-refs (magit-remote-list-refs remote)) + (variable (format "remote.%s.fetch" remote)) + (refspecs (magit-get-all variable)) + stale) + (dolist (refspec refspecs) + (when (string-match magit--refspec-re refspec) + (let ((theirs (match-string 2 refspec)) + (ours (match-string 3 refspec))) + (unless (if (string-match "\\*" theirs) + (let ((re (replace-match ".*" t t theirs))) + (--some (string-match-p re it) remote-refs)) + (member theirs remote-refs)) + (push (cons refspec + (if (string-match "\\*" ours) + (let ((re (replace-match ".*" t t ours))) + (--filter (string-match-p re it) tracking-refs)) + (list (car (member ours tracking-refs))))) + stale))))) + (if (not stale) + (message "No stale refspecs for remote %S" remote) + (if (= (length stale) + (length refspecs)) + (magit-read-char-case + (format "All of %s's refspecs are stale. " remote) nil + (?s "replace with [d]efault refspec" + (magit-set-all + (list (format "+refs/heads/*:refs/remotes/%s/*" remote)) + variable)) + (?r "[r]emove remote" + (magit-call-git "remote" "rm" remote)) + (?a "or [a]abort" + (user-error "Abort"))) + (if (if (= (length stale) 1) + (pcase-let ((`(,refspec . ,refs) (car stale))) + (magit-confirm 'prune-stale-refspecs + (format "Prune stale refspec %s and branch %%s" refspec) + (format "Prune stale refspec %s and %%i branches" refspec) + refs)) + (magit-confirm 'prune-stale-refspecs nil + (format "Prune %%i stale refspecs and %i branches" + (length (cl-mapcan (lambda (s) (copy-sequence (cdr s))) + stale))) + (mapcar (pcase-lambda (`(,refspec . ,refs)) + (concat refspec "\n" + (mapconcat (lambda (b) (concat " " b)) + refs "\n"))) + stale))) + (pcase-dolist (`(,refspec . ,refs) stale) + (magit-call-git "config" "--unset" variable + (regexp-quote refspec)) + (magit--log-action + (lambda (refs) + (format "Deleting %i branches" (length refs))) + (lambda (ref) + (format "Deleting branch %s (was %s)" ref + (magit-rev-parse "--short" ref))) + refs) + (dolist (ref refs) + (magit-call-git "update-ref" "-d" ref))) + (user-error "Abort"))) + (magit-refresh)))) ;;;###autoload (defun magit-remote-set-head (remote &optional branch) @@ -279,7 +365,7 @@ Delete the symbolic-ref \"refs/remotes//HEAD\"." (defun magit-cycle-remote*tagOpt (remote) (interactive (list (magit-remote-config--remote))) - (magit--set-popup-variable (format "remote.%s.tagOpts" remote) + (magit--set-popup-variable (format "remote.%s.tagOpt" remote) '("--no-tags" "--tags") nil)) (defun magit-format-remote*url () @@ -856,6 +942,7 @@ To add this command to the push popup add this to your init file: (?t "To" "--to=") (?c "CC" "--cc=") (?r "In reply to" "--in-reply-to=") + (?P "Subject Prefix" "--subject-prefix=") (?v "Reroll count" "--reroll-count=") (?s "Thread style" "--thread=") (?U "Context lines" "-U") diff --git a/elpa/magit-20171208.618/magit-repos.el b/elpa/magit-20180118.313/magit-repos.el similarity index 99% rename from elpa/magit-20171208.618/magit-repos.el rename to elpa/magit-20180118.313/magit-repos.el index 3411867f..af2fdefe 100644 --- a/elpa/magit-20171208.618/magit-repos.el +++ b/elpa/magit-20180118.313/magit-repos.el @@ -1,6 +1,6 @@ ;;; magit-repos.el --- listing repositories -*- lexical-binding: t -*- -;; Copyright (C) 2010-2017 The Magit Project Contributors +;; Copyright (C) 2010-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. diff --git a/elpa/magit-20171208.618/magit-section.el b/elpa/magit-20180118.313/magit-section.el similarity index 80% rename from elpa/magit-20171208.618/magit-section.el rename to elpa/magit-20180118.313/magit-section.el index e1fc17b6..bcdb1f24 100644 --- a/elpa/magit-20171208.618/magit-section.el +++ b/elpa/magit-20180118.313/magit-section.el @@ -1,6 +1,6 @@ ;;; magit-section.el --- section functionality -*- lexical-binding: t -*- -;; Copyright (C) 2010-2017 The Magit Project Contributors +;; Copyright (C) 2010-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. @@ -31,10 +31,13 @@ (require 'cl-lib) (require 'dash) +(require 'eieio) (require 'magit-utils) (declare-function magit-maybe-make-margin-overlay 'magit-log) +(declare-function magit-repository-local-get 'magit-mode) +(declare-function magit-repository-local-set 'magit-mode) (defvar magit-keep-region-overlay) ;;; Options @@ -95,17 +98,24 @@ diff-related sections being the only exception." (defcustom magit-section-set-visibility-hook '(magit-diff-expansion-threshold - magit-section-set-visibility-from-cache) + magit-section-cached-visibility) "Hook used to set the initial visibility of a section. -Stop at the first function that returns non-nil. The value -should be `show' or `hide'. If no function returns non-nil, -determine the visibility as usual, i.e. use the hardcoded -section specific default (see `magit-insert-section')." +Stop at the first function that returns non-nil. The returned +value should be `show', `hide' or nil. If no function returns +non-nil, determine the visibility as usual, i.e. use the +hardcoded section specific default (see `magit-insert-section')." :package-version '(magit . "2.4.0") :group 'magit-section :type 'hook :options '(magit-diff-expansion-threshold - magit-section-set-visibility-from-cache)) + magit-section-cached-visibility)) + +(defcustom magit-section-cache-visibility-types + '(unpulled unpushed untracked unstaged staged) + "List of section types for which visibility should be cached." + :package-version '(magit . "2.12.0") + :group 'magit-section + :type '(repeat symbol)) (defface magit-section-highlight '((((class color) (background light)) :background "grey95") @@ -131,9 +141,24 @@ section specific default (see `magit-insert-section')." ;;; Core -(cl-defstruct magit-section - type value start content end hidden washer refined - source diff-header process parent children) +(defclass magit-section () + ((type :initform nil :accessor magit-section-type :initarg :type) + (value :initform nil :accessor magit-section-value :initarg :value) + (start :initform nil :accessor magit-section-start :initarg :start) + (content :initform nil :accessor magit-section-content) + (end :initform nil :accessor magit-section-end) + (hidden :initform nil :accessor magit-section-hidden) + (washer :initform nil :accessor magit-section-washer) + (process :initform nil) + (parent :initform nil :accessor magit-section-parent :initarg :parent) + (children :initform nil :accessor magit-section-children))) + +(defclass magit-file-section (magit-section) + ((source :initform nil) + (header :initform nil))) + +(defclass magit-hunk-section (magit-section) + ((refined :initform nil))) (defvar-local magit-root-section nil "The root section in the current buffer. @@ -149,9 +174,9 @@ never modify it.") (defun magit-section-ident (section) "Return an unique identifier for SECTION. The return value has the form ((TYPE . VALUE)...)." - (cons (cons (magit-section-type section) - (magit-section-value section)) - (--when-let (magit-section-parent section) + (cons (cons (oref section type) + (oref section value)) + (--when-let (oref section parent) (magit-section-ident it)))) (defun magit-get-section (ident &optional root) @@ -159,13 +184,14 @@ The return value has the form ((TYPE . VALUE)...)." IDENT has to be a list as returned by `magit-section-ident'." (setq ident (reverse ident)) (let ((section (or root magit-root-section))) - (when (eq (car (pop ident)) (magit-section-type section)) + (when (eq (car (pop ident)) + (oref section type)) (while (and ident (setq section (--first - (and (eq (caar ident) (magit-section-type it)) - (equal (cdar ident) (magit-section-value it))) - (magit-section-children section)))) + (and (eq (caar ident) (oref it type)) + (equal (cdar ident) (oref it value))) + (oref section children)))) (pop ident)) section))) @@ -182,13 +208,14 @@ IDENT has to be a list as returned by `magit-section-ident'." (if (eobp) (user-error "No next section") (let ((section (magit-current-section))) - (if (magit-section-parent section) - (let ((next (and (not (magit-section-hidden section)) - (not (= (magit-section-end section) (1+ (point)))) - (car (magit-section-children section))))) + (if (oref section parent) + (let ((next (and (not (oref section hidden)) + (not (= (oref section end) + (1+ (point)))) + (car (oref section children))))) (while (and section (not next)) (unless (setq next (car (magit-section-siblings section 'next))) - (setq section (magit-section-parent section)))) + (setq section (oref section parent)))) (if next (magit-section-goto next) (user-error "No next section"))) @@ -204,22 +231,24 @@ the beginning of the current section." (user-error "No previous section") (let ((section (magit-current-section)) children) (cond - ((and (= (point) (1- (magit-section-end section))) - (setq children (magit-section-children section))) + ((and (= (point) + (1- (oref section end))) + (setq children (oref section children))) (magit-section-goto (car (last children)))) - ((and (magit-section-parent section) - (not (= (point) (magit-section-start section)))) + ((and (oref section parent) + (not (= (point) + (oref section start)))) (magit-section-goto section)) (t (let ((prev (car (magit-section-siblings section 'prev)))) (if prev - (while (and (not (magit-section-hidden prev)) - (setq children (magit-section-children prev))) + (while (and (not (oref prev hidden)) + (setq children (oref prev children))) (setq prev (car (last children)))) - (setq prev (magit-section-parent section))) + (setq prev (oref section parent))) (cond (prev (magit-section-goto prev)) - ((magit-section-parent section) + ((oref section parent) (user-error "No previous section")) ;; Eob special cases. ((not (get-text-property (1- (point)) 'invisible)) @@ -233,7 +262,7 @@ the beginning of the current section." (defun magit-section-up () "Move to the beginning of the parent section." (interactive) - (--if-let (magit-section-parent (magit-current-section)) + (--if-let (oref (magit-current-section) parent) (magit-section-goto it) (user-error "No parent section"))) @@ -242,7 +271,7 @@ the beginning of the current section." If there is no next sibling section, then move to the parent." (interactive) (let ((current (magit-current-section))) - (if (magit-section-parent current) + (if (oref current parent) (--if-let (car (magit-section-siblings current 'next)) (magit-section-goto it) (magit-section-forward)) @@ -253,7 +282,7 @@ If there is no next sibling section, then move to the parent." If there is no previous sibling section, then move to the parent." (interactive) (let ((current (magit-current-section))) - (if (magit-section-parent current) + (if (oref current parent) (--if-let (car (magit-section-siblings current 'prev)) (magit-section-goto it) (magit-section-backward)) @@ -263,18 +292,18 @@ If there is no previous sibling section, then move to the parent." (if (integerp arg) (progn (forward-line arg) (setq arg (magit-current-section))) - (goto-char (magit-section-start arg))) + (goto-char (oref arg start))) (run-hook-with-args 'magit-section-movement-hook arg)) (defun magit-section-set-window-start (section) "Ensure the beginning of SECTION is visible." - (unless (pos-visible-in-window-p (magit-section-end section)) - (set-window-start (selected-window) (magit-section-start section)))) + (unless (pos-visible-in-window-p (oref section end)) + (set-window-start (selected-window) (oref section start)))) (defun magit-hunk-set-window-start (section) "When SECTION is a `hunk', ensure that its beginning is visible. It the SECTION has a different type, then do nothing." - (when (eq (magit-section-type section) 'hunk) + (when (magit-hunk-section-p section) (magit-section-set-window-start section))) (defmacro magit-define-section-jumper (name heading type &optional value) @@ -289,7 +318,7 @@ With a prefix argument also expand it." heading) (--if-let (magit-get-section (cons (cons ',type ,value) (magit-section-ident magit-root-section))) - (progn (goto-char (magit-section-start it)) + (progn (goto-char (oref it start)) (when expand (with-local-quit (magit-section-show it)) (recenter 0))) @@ -300,25 +329,25 @@ With a prefix argument also expand it." heading) (defun magit-section-show (section) "Show the body of the current section." (interactive (list (magit-current-section))) - (setf (magit-section-hidden section) nil) - (-when-let (washer (magit-section-washer section)) - (setf (magit-section-washer section) nil) + (oset section hidden nil) + (-when-let (washer (oref section washer)) + (oset section washer nil) (let ((inhibit-read-only t) (magit-insert-section--parent section) - (content (magit-section-content section))) + (content (oref section content))) (save-excursion - (if (and content (< content (magit-section-end section))) + (if (and content (< content (oref section end))) (funcall washer section) ; already partially washed (hunk) - (goto-char (magit-section-end section)) - (setf (magit-section-content section) (point-marker)) + (goto-char (oref section end)) + (oset section content (point-marker)) (funcall washer) - (setf (magit-section-end section) (point-marker))))) + (oset section end (point-marker))))) (magit-section-update-highlight)) - (-when-let (beg (magit-section-content section)) - (remove-overlays beg (magit-section-end section) 'invisible t)) - (magit-section-update-visibility-cache section) - (dolist (child (magit-section-children section)) - (if (magit-section-hidden child) + (-when-let (beg (oref section content)) + (remove-overlays beg (oref section end) 'invisible t)) + (magit-section-maybe-cache-visibility section) + (dolist (child (oref section children)) + (if (oref child hidden) (magit-section-hide child) (magit-section-show child)))) @@ -327,34 +356,33 @@ With a prefix argument also expand it." heading) (interactive (list (magit-current-section))) (if (eq section magit-root-section) (user-error "Cannot hide root section") - (setf (magit-section-hidden section) t) - (-when-let (beg (magit-section-content section)) - (let ((end (magit-section-end section))) + (oset section hidden t) + (-when-let (beg (oref section content)) + (let ((end (oref section end))) (remove-overlays beg end 'invisible t) (let ((o (make-overlay beg end))) (overlay-put o 'evaporate t) (overlay-put o 'invisible t)))) - (when (memq (magit-section-type section) '(unpulled unpushed)) - (magit-section-cache-visibility section)))) + (magit-section-maybe-cache-visibility section))) (defun magit-section-toggle (section) "Toggle visibility of the body of the current section." (interactive (list (magit-current-section))) (if (eq section magit-root-section) (user-error "Cannot hide root section") - (goto-char (magit-section-start section)) - (if (magit-section-hidden section) + (goto-char (oref section start)) + (if (oref section hidden) (magit-section-show section) (magit-section-hide section)))) (defun magit-section-toggle-children (section) "Toggle visibility of bodies of children of the current section." (interactive (list (magit-current-section))) - (goto-char (magit-section-start section)) - (let* ((children (magit-section-children section)) - (show (-any-p 'magit-section-hidden children))) + (goto-char (oref section start)) + (let* ((children (oref section children)) + (show (--any-p (oref it hidden) children))) (dolist (c children) - (setf (magit-section-hidden c) show))) + (oset c hidden show))) (magit-section-show section)) (defun magit-section-show-children (section &optional depth) @@ -366,18 +394,18 @@ children." (magit-section-show section)) (defun magit-section-show-children-1 (section &optional depth) - (dolist (s (magit-section-children section)) - (setf (magit-section-hidden s) nil) + (--each (oref section children) + (oset it hidden nil) (if depth (if (> depth 0) - (magit-section-show-children-1 s (1- depth)) - (magit-section-hide s)) - (magit-section-show-children-1 s)))) + (magit-section-show-children-1 it (1- depth)) + (magit-section-hide it)) + (magit-section-show-children-1 it)))) (defun magit-section-hide-children (section) "Recursively hide the bodies of children of the current section." (interactive (list (magit-current-section))) - (mapc 'magit-section-hide (magit-section-children section))) + (mapc 'magit-section-hide (oref section children))) (defun magit-section-show-headings (section) "Recursively show headings of children of the current section. @@ -388,22 +416,22 @@ hidden." (magit-section-show section)) (defun magit-section-show-headings-1 (section) - (dolist (s (magit-section-children section)) - (setf (magit-section-hidden s) nil) - (when (or (magit-section-children s) - (not (magit-section-content s))) - (magit-section-show-headings-1 s)))) + (--each (oref section children) + (oset it hidden nil) + (when (or (oref it children) + (not (oref it content))) + (magit-section-show-headings-1 it)))) (defun magit-section-cycle (section) "Cycle visibility of current section and its children." (interactive (list (magit-current-section))) - (goto-char (magit-section-start section)) - (if (magit-section-hidden section) + (goto-char (oref section start)) + (if (oref section hidden) (progn (magit-section-show section) (magit-section-hide-children section)) - (let ((children (magit-section-children section))) - (cond ((and (-any-p 'magit-section-hidden children) - (-any-p 'magit-section-children children)) + (let ((children (oref section children))) + (cond ((and (--any-p (oref it hidden) children) + (--any-p (oref it children) children)) (magit-section-show-headings section)) ((-any-p 'magit-section-hidden-body children) (magit-section-show-children section)) @@ -413,9 +441,9 @@ hidden." (defun magit-section-cycle-global () "Cycle visibility of all sections in the current buffer." (interactive) - (let ((children (magit-section-children magit-root-section))) - (cond ((and (-any-p 'magit-section-hidden children) - (-any-p 'magit-section-children children)) + (let ((children (oref magit-root-section children))) + (cond ((and (--any-p (oref it hidden) children) + (--any-p (oref it children) children)) (magit-section-show-headings magit-root-section)) ((-any-p 'magit-section-hidden-body children) (magit-section-show-children magit-root-section)) @@ -429,21 +457,21 @@ hidden." (cond ((derived-mode-p 'magit-status-mode) (--mapcat (when it - (when (magit-section-hidden it) + (when (oref it hidden) (magit-section-show it)) - (magit-section-children it)) + (oref it children)) (list (magit-get-section '((staged) (status))) (magit-get-section '((unstaged) (status)))))) ((derived-mode-p 'magit-diff-mode) - (--filter (eq (magit-section-type it) 'file) - (magit-section-children magit-root-section))))) - (if (-any-p 'magit-section-hidden sections) + (-filter #'magit-file-section-p + (oref magit-root-section children))))) + (if (--any-p (oref it hidden) sections) (dolist (s sections) (magit-section-show s) (magit-section-hide-children s)) - (let ((children (-mapcat 'magit-section-children sections))) - (cond ((and (-any-p 'magit-section-hidden children) - (-any-p 'magit-section-children children)) + (let ((children (--mapcat (oref it children) sections))) + (cond ((and (--any-p (oref it hidden) children) + (--any-p (oref it children) children)) (mapc 'magit-section-show-headings sections)) ((-any-p 'magit-section-hidden-body children) (mapc 'magit-section-show-children sections)) @@ -451,17 +479,17 @@ hidden." (mapc 'magit-section-hide sections))))))) (defun magit-section-hidden-body (section &optional pred) - (--if-let (magit-section-children section) + (--if-let (oref section children) (funcall (or pred '-any-p) 'magit-section-hidden-body it) - (and (magit-section-content section) - (magit-section-hidden section)))) + (and (oref section content) + (oref section hidden)))) (defun magit-section-invisible-p (section) "Return t if the SECTION's body is invisible. When the body of an ancestor of SECTION is collapsed then SECTION's body (and heading) obviously cannot be visible." - (or (magit-section-hidden section) - (--when-let (magit-section-parent section) + (or (oref section hidden) + (--when-let (oref section parent) (magit-section-invisible-p it)))) (defun magit-section-show-level (level) @@ -472,11 +500,13 @@ Sections at higher levels are hidden." (let ((s (magit-current-section))) (setq level (- level)) (while (> (1- (length (magit-section-ident s))) level) - (setq s (magit-section-parent s)) - (goto-char (magit-section-start s))) + (setq s (oref s parent)) + (goto-char (oref s start))) (magit-section-show-children magit-root-section (1- level))) - (cl-do* ((s (magit-current-section) (magit-section-parent s)) - (i (1- (length (magit-section-ident s))) (cl-decf i))) + (cl-do* ((s (magit-current-section) + (oref s parent)) + (i (1- (length (magit-section-ident s))) + (cl-decf i))) ((cond ((< i level) (magit-section-show-children s (- level i 1)) t) ((= i level) (magit-section-hide s) t)) (magit-section-goto s))))) @@ -529,10 +559,10 @@ This command is intended for debugging purposes." (interactive) (let ((section (magit-current-section))) (message "%S %S %s-%s" - (magit-section-value section) + (oref section value) (apply 'vector (mapcar 'car (magit-section-ident section))) - (marker-position (magit-section-start section)) - (marker-position (magit-section-end section))))) + (marker-position (oref section start)) + (marker-position (oref section end))))) ;;; Match @@ -558,16 +588,9 @@ Each TYPE is a symbol. Note that it is not necessary to specify all TYPEs up to the root section as printed by `magit-describe-type', unless of course you want to be that precise." - ;; For backward compatibility reasons SECTION can also be a - ;; type-list as understood by `magit-section-match-1'. This - ;; includes uses of the macros `magit-section-when' and - ;; `magit-section-case' that did not get recompiled after - ;; this function was changed. (and section (magit-section-match-1 condition - (if (magit-section-p section) - (mapcar #'car (magit-section-ident section)) - section)))) + (mapcar #'car (magit-section-ident section))))) (defun magit-section-match-1 (condition type-list) (if (listp condition) @@ -606,7 +629,7 @@ See `magit-section-match' for the forms CONDITION can take." ;; to not quote CONDITION because that would needlessly break ;; backward compatibility. (when (magit-section-match ',condition it) - ,@(or body '((magit-section-value it)))))) + ,@(or body '((oref it value)))))) (defmacro magit-section-case (&rest clauses) "Choose among clauses on the type of the section at point. @@ -684,18 +707,24 @@ anything this time around. (&or [("eval" symbolp) &optional form form] [symbolp &optional form form]) body))) - (let ((s (if (symbolp (car args)) + (let ((tp (cl-gensym "type")) + (s (if (symbolp (car args)) (pop args) (cl-gensym "section")))) - `(let* ((,s (make-magit-section - :type ,(let ((type (nth 0 (car args)))) - (if (eq (car-safe type) 'eval) - (cadr type) - `',type)) - :value ,(nth 1 (car args)) - :start (point-marker) - :parent magit-insert-section--parent))) - (setf (magit-section-hidden ,s) + `(let* ((,tp ,(let ((type (nth 0 (car args)))) + (if (eq (car-safe type) 'eval) + (cadr type) + `',type))) + (,s (funcall (pcase ,tp + (`file 'magit-file-section) + (`hunk 'magit-hunk-section) + (_ 'magit-section)) + "" + :type ,tp + :value ,(nth 1 (car args)) + :start (point-marker) + :parent magit-insert-section--parent))) + (oset ,s hidden (-if-let (value (run-hook-with-args-until-success 'magit-section-set-visibility-hook ,s)) (eq value 'hide) @@ -703,7 +732,7 @@ anything this time around. (magit-get-section (magit-section-ident ,s) magit-insert-section--oldroot)) - (magit-section-hidden it) + (oref it hidden) ,(nth 2 (car args))))) (let ((magit-insert-section--current ,s) (magit-insert-section--parent ,s) @@ -716,13 +745,12 @@ anything this time around. ,@(cdr args) (run-hooks 'magit-insert-section-hook) (magit-insert-child-count ,s) - (set-marker-insertion-type (magit-section-start ,s) t) - (let* ((end (setf (magit-section-end ,s) (point-marker))) - (map (intern (format "magit-%s-section-map" - (magit-section-type ,s)))) + (set-marker-insertion-type (oref ,s start) t) + (let* ((end (oset ,s end (point-marker))) + (map (intern (format "magit-%s-section-map" (oref ,s type)))) (map (and (boundp map) (symbol-value map)))) (save-excursion - (goto-char (magit-section-start ,s)) + (goto-char (oref ,s start)) (while (< (point) end) (let ((next (or (next-single-property-change (point) 'magit-section) @@ -734,16 +762,16 @@ anything this time around. (goto-char next))))) (if (eq ,s magit-root-section) (magit-section-show ,s) - (setf (magit-section-children (magit-section-parent ,s)) - (nconc (magit-section-children (magit-section-parent ,s)) + (oset (oref ,s parent) children + (nconc (oref (oref ,s parent) children) (list ,s))))) ,s)))) (defun magit-cancel-section () (when magit-insert-section--current - (if (not (magit-section-parent magit-insert-section--current)) + (if (not (oref magit-insert-section--current parent)) (insert "(empty)\n") - (delete-region (magit-section-start magit-insert-section--current) + (delete-region (oref magit-insert-section--current start) (point)) (setq magit-insert-section--current nil) (throw 'cancel-section nil)))) @@ -784,7 +812,7 @@ insert a newline character if necessary." (unless (bolp) (insert ?\n)) (magit-maybe-make-margin-overlay) - (setf (magit-section-content magit-insert-section--current) (point-marker))) + (oset magit-insert-section--current content (point-marker))) (defvar magit-insert-headers--hook nil "For internal use only.") (defvar magit-insert-headers--beginning nil "For internal use only.") @@ -822,9 +850,9 @@ evaluated its BODY. Admittedly that's a bit of a hack." ;; This has to be fast, not pretty! (let (content count) (when (and magit-section-show-child-count - (setq count (length (magit-section-children section))) + (setq count (length (oref section children))) (> count 0) - (setq content (magit-section-content section)) + (setq content (oref section content)) (eq (char-before (1- content)) ?:)) (save-excursion (goto-char (- content 2)) @@ -866,7 +894,8 @@ evaluated its BODY. Admittedly that's a bit of a hack." (restore-buffer-modified-p nil) (unless (eq magit-section-highlighted-section section) (setq magit-section-highlighted-section - (unless (magit-section-hidden section) section)))) + (and (not (oref section hidden)) + section)))) (setq deactivate-mark nil)))) (defun magit-section-highlight (section selection) @@ -875,13 +904,13 @@ This function works for any section but produces undesirable effects for diff related sections, which by default are highlighted using `magit-diff-highlight'. Return t." (cond (selection - (magit-section-make-overlay (magit-section-start (car selection)) - (magit-section-end (car (last selection))) + (magit-section-make-overlay (oref (car selection) start) + (oref (car (last selection)) end) 'magit-section-highlight) (magit-section-highlight-selection nil selection)) (t - (magit-section-make-overlay (magit-section-start section) - (magit-section-end section) + (magit-section-make-overlay (oref section start) + (oref section end) 'magit-section-highlight))) t) @@ -901,9 +930,9 @@ invisible." (when (and selection (not (and (eq this-command 'mouse-drag-region)))) (--each selection - (magit-section-make-overlay (magit-section-start it) - (or (magit-section-content it) - (magit-section-end it)) + (magit-section-make-overlay (oref it start) + (or (oref it content) + (oref it end)) 'magit-section-heading-selection)) t)) @@ -924,7 +953,7 @@ invisible." (defun magit-section-goto-successor (section line char arg) (let ((ident (magit-section-ident section))) (--if-let (magit-get-section ident) - (let ((start (magit-section-start it))) + (let ((start (oref it start))) (goto-char start) (unless (eq it magit-root-section) (ignore-errors @@ -932,11 +961,11 @@ invisible." (forward-char char)) (unless (eq (magit-current-section) it) (goto-char start)))) - (or (and (eq (magit-section-type section) 'hunk) + (or (and (magit-hunk-section-p section) (-when-let (parent (magit-get-section (magit-section-ident - (magit-section-parent section)))) - (let* ((children (magit-section-children parent)) + (oref section parent)))) + (let* ((children (oref parent children)) (siblings (magit-section-siblings section 'prev)) (previous (nth (length siblings) children))) (if (not arg) @@ -946,22 +975,21 @@ invisible." (when previous (magit-section-goto previous)) (if (and (stringp arg) - (re-search-forward - arg (magit-section-end parent) t)) + (re-search-forward arg (oref parent end) t)) (goto-char (match-beginning 0)) - (goto-char (magit-section-end (car (last children)))) + (goto-char (oref (car (last children)) end)) (forward-line -1) (while (looking-at "^ ") (forward-line -1)) (while (looking-at "^[-+]") (forward-line -1)) (forward-line)))))) (goto-char (--if-let (magit-section-goto-successor-1 section) - (if (eq (magit-section-type it) 'button) + (if (eq (oref it type) 'button) (point-min) - (magit-section-start it)) + (oref it start)) (point-min))))))) (defun magit-section-goto-successor-1 (section) - (or (--when-let (pcase (magit-section-type section) + (or (--when-let (pcase (oref section type) (`staged 'unstaged) (`unstaged 'staged) (`unpushed 'unpulled) @@ -971,7 +999,7 @@ invisible." (magit-get-section (magit-section-ident it))) (--when-let (car (magit-section-siblings section 'prev)) (magit-get-section (magit-section-ident it))) - (--when-let (magit-section-parent section) + (--when-let (oref section parent) (or (magit-get-section (magit-section-ident it)) (magit-section-goto-successor-1 it))))) @@ -980,31 +1008,30 @@ invisible." (defvar-local magit-section-visibility-cache nil) (put 'magit-section-visibility-cache 'permanent-local t) -(defun magit-section-set-visibility-from-cache (section) - "Set SECTION's visibility to the cached value. -Currently the cache can only be used to remember that a section's -body should be collapsed, not that it should be expanded. Return -either `hide' or nil." - (and (member (magit-section-visibility-ident section) - magit-section-visibility-cache) - 'hide)) +(defun magit-section-cached-visibility (section) + "Set SECTION's visibility to the cached value." + (cdr (assoc (magit-section-visibility-ident section) + magit-section-visibility-cache))) (cl-defun magit-section-cache-visibility (&optional (section magit-insert-section--current)) - (let ((ident (magit-section-visibility-ident section))) - (if (magit-section-hidden section) - (cl-pushnew ident magit-section-visibility-cache :test #'equal) - (setq magit-section-visibility-cache - (delete ident magit-section-visibility-cache))))) - -(defun magit-section-update-visibility-cache (section) - (setq magit-section-visibility-cache - (delete (magit-section-visibility-ident section) - magit-section-visibility-cache))) + ;; Emacs 24 doesn't have `alist-get'. + (let* ((id (magit-section-visibility-ident section)) + (elt (assoc id magit-section-visibility-cache)) + (val (if (oref section hidden) 'hide 'show))) + (if elt + (setcdr elt val) + (push (cons id val) magit-section-visibility-cache)))) + +(cl-defun magit-section-maybe-cache-visibility + (&optional (section magit-insert-section--current)) + (when (memq (oref section type) + magit-section-cache-visibility-types) + (magit-section-cache-visibility section))) (defun magit-section-visibility-ident (section) - (let ((type (magit-section-type section)) - (value (magit-section-value section))) + (let ((type (oref section type)) + (value (oref section value))) (cons type (cond ((not (memq type '(unpulled unpushed))) value) ((string-match-p "@{upstream}" value) value) @@ -1017,6 +1044,17 @@ either `hide' or nil." ((string-match-p "\\`\\.\\." value) "..@{push}") (t "@{push}.."))))) +(defun magit-preserve-section-visibility-cache () + (when (derived-mode-p 'magit-status-mode 'magit-refs-mode) + (magit-repository-local-set + (cons major-mode 'magit-section-visibility-cache) + magit-section-visibility-cache))) + +(defun magit-restore-section-visibility-cache (mode) + (setq magit-section-visibility-cache + (magit-repository-local-get + (cons mode 'magit-section-visibility-cache)))) + ;;; Utilities (cl-defun magit-section-selected-p (section &optional (selection nil sselection)) @@ -1025,12 +1063,12 @@ either `hide' or nil." (memq section (if sselection selection (setq selection (magit-region-sections)))) - (--when-let (magit-section-parent section) + (--when-let (oref section parent) (magit-section-selected-p it selection))))) (defun magit-section-parent-value (section) - (setq section (magit-section-parent section)) - (when section (magit-section-value section))) + (-when-let (parent (oref section parent)) + (oref parent value))) (defun magit-section-siblings (section &optional direction) "Return a list of the sibling sections of SECTION. @@ -1039,8 +1077,8 @@ If optional DIRECTION is `prev', then return siblings that come before SECTION. If it is `next', then return siblings that come after SECTION. For all other values, return all siblings excluding SECTION itself." - (-when-let (parent (magit-section-parent section)) - (let ((siblings (magit-section-children parent))) + (-when-let (parent (oref section parent)) + (let ((siblings (oref parent children))) (pcase direction (`prev (cdr (member section (reverse siblings)))) (`next (cdr (member section siblings))) @@ -1055,7 +1093,8 @@ or is not a valid section selection, then return nil. If optional TYPES is non-nil then the selection not only has to be valid; the types of all selected sections additionally have to match one of TYPES, or nil is returned." - (mapcar #'magit-section-value (magit-region-sections types multiple))) + (--map (oref it value) + (magit-region-sections types multiple))) (defun magit-region-sections (&optional types multiple) "Return a list of the selected sections. @@ -1103,7 +1142,7 @@ single type, instead of a list of types." (when (and types (symbolp types)) (setq types (list types))) (when (or (not types) - (--all-p (memq (magit-section-type it) types) sections)) + (--all-p (memq (oref it type) types) sections)) sections))))))) (defun magit-section-position-in-heading-p (&optional section pos) @@ -1115,9 +1154,9 @@ current section." (unless pos (setq pos (point))) (and section - (>= pos (magit-section-start section)) - (< pos (or (magit-section-content section) - (magit-section-end section))) + (>= pos (oref section start)) + (< pos (or (oref section content) + (oref section end))) t)) (defun magit-section-internal-region-p (&optional section) diff --git a/elpa/magit-20171208.618/magit-sequence.el b/elpa/magit-20180118.313/magit-sequence.el similarity index 99% rename from elpa/magit-20171208.618/magit-sequence.el rename to elpa/magit-20180118.313/magit-sequence.el index d5da6914..b5d71846 100644 --- a/elpa/magit-20171208.618/magit-sequence.el +++ b/elpa/magit-20180118.313/magit-sequence.el @@ -1,6 +1,6 @@ ;;; magit-sequence.el --- history manipulation in Magit -*- lexical-binding: t -*- -;; Copyright (C) 2011-2017 The Magit Project Contributors +;; Copyright (C) 2011-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. diff --git a/elpa/magit-20171208.618/magit-stash.el b/elpa/magit-20180118.313/magit-stash.el similarity index 99% rename from elpa/magit-20171208.618/magit-stash.el rename to elpa/magit-20180118.313/magit-stash.el index 3a719586..56f5d593 100644 --- a/elpa/magit-20171208.618/magit-stash.el +++ b/elpa/magit-20180118.313/magit-stash.el @@ -1,6 +1,6 @@ ;;; magit-stash.el --- stash support for Magit -*- lexical-binding: t -*- -;; Copyright (C) 2008-2017 The Magit Project Contributors +;; Copyright (C) 2008-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. @@ -461,7 +461,8 @@ that make up the stash." (magit-insert-section section (note) (magit-insert-heading "Notes") (magit-git-insert "notes" "show" (car magit-refresh-args)) - (if (= (point) (magit-section-content section)) + (if (= (point) + (oref section content)) (magit-cancel-section) (insert "\n")))) diff --git a/elpa/magit-20171208.618/magit-status.el b/elpa/magit-20180118.313/magit-status.el similarity index 99% rename from elpa/magit-20171208.618/magit-status.el rename to elpa/magit-20180118.313/magit-status.el index d7718c22..afbdd52c 100644 --- a/elpa/magit-20171208.618/magit-status.el +++ b/elpa/magit-20180118.313/magit-status.el @@ -1,6 +1,6 @@ ;;; magit-status.el --- the grand overview -*- lexical-binding: t -*- -;; Copyright (C) 2010-2017 The Magit Project Contributors +;; Copyright (C) 2010-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. diff --git a/elpa/magit-20171208.618/magit-submodule.el b/elpa/magit-20180118.313/magit-submodule.el similarity index 95% rename from elpa/magit-20171208.618/magit-submodule.el rename to elpa/magit-20180118.313/magit-submodule.el index 5c8a7c62..7b0340e5 100644 --- a/elpa/magit-20171208.618/magit-submodule.el +++ b/elpa/magit-20180118.313/magit-submodule.el @@ -1,6 +1,6 @@ ;;; magit-submodule.el --- submodule support for Magit -*- lexical-binding: t -*- -;; Copyright (C) 2011-2017 The Magit Project Contributors +;; Copyright (C) 2011-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. @@ -131,7 +131,14 @@ PATH also becomes the name." (interactive (magit-with-toplevel (let* ((url (magit-read-string-ns "Add submodule (remote url)")) - (path (let ((read-file-name-function #'read-file-name-default)) + (path (let ((read-file-name-function + (if (or (eq read-file-name-function 'ido-read-file-name) + (advice-function-member-p + 'ido-read-file-name + read-file-name-function)) + ;; The Ido variant doesn't work properly here. + #'read-file-name-default + read-file-name-function))) (directory-file-name (file-relative-name (read-directory-name @@ -229,8 +236,8 @@ whether they are wrapped in an additional section." (format "%s (%s)" (propertize "Modules" 'face 'magit-section-heading) (length modules))) - (if (magit-section-hidden section) - (setf (magit-section-washer section) 'magit--insert-modules) + (if (oref section hidden) + (oset section washer 'magit--insert-modules) (magit--insert-modules))) (magit--insert-modules)))) @@ -248,8 +255,8 @@ or, failing that, the abbreviated HEAD commit hash." (format "%s (%s)" (propertize "Modules overview" 'face 'magit-section-heading) (length modules))) - (if (magit-section-hidden section) - (setf (magit-section-washer section) 'magit--insert-modules-overview) + (if (oref section hidden) + (oset section washer 'magit--insert-modules-overview) (magit--insert-modules-overview))))) (defvar magit-modules-overview-align-numbers t) @@ -376,9 +383,11 @@ These sections can be expanded to show the respective commits." (concat (propertize module 'face 'magit-diff-file-heading) ":")) (magit-git-wash (apply-partially 'magit-log-wash-log 'module) "-c" "push.default=current" "log" "--oneline" range) - (when (> (point) (magit-section-content sec)) + (when (> (point) + (oref sec content)) (delete-char -1))))))) - (if (> (point) (magit-section-content section)) + (if (> (point) + (oref section content)) (insert ?\n) (magit-cancel-section))))) diff --git a/elpa/magit-20171208.618/magit-subtree.el b/elpa/magit-20180118.313/magit-subtree.el similarity index 98% rename from elpa/magit-20171208.618/magit-subtree.el rename to elpa/magit-20180118.313/magit-subtree.el index 882177e7..b31d0d8b 100644 --- a/elpa/magit-20171208.618/magit-subtree.el +++ b/elpa/magit-20180118.313/magit-subtree.el @@ -1,6 +1,6 @@ ;;; magit-subtree.el --- subtree support for Magit -*- lexical-binding: t -*- -;; Copyright (C) 2011-2017 The Magit Project Contributors +;; Copyright (C) 2011-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. diff --git a/elpa/magit-20171208.618/magit-utils.el b/elpa/magit-20180118.313/magit-utils.el similarity index 98% rename from elpa/magit-20171208.618/magit-utils.el rename to elpa/magit-20180118.313/magit-utils.el index f6cd1a24..eb414ba9 100644 --- a/elpa/magit-20171208.618/magit-utils.el +++ b/elpa/magit-20180118.313/magit-utils.el @@ -1,6 +1,6 @@ ;;; magit-utils.el --- various utilities -*- lexical-binding: t; coding: utf-8 -*- -;; Copyright (C) 2010-2017 The Magit Project Contributors +;; Copyright (C) 2010-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. @@ -517,7 +517,8 @@ back to built-in `completing-read' for now." :error) This is similar to `read-string', but * empty input is only allowed if DEFAULT-VALUE is non-nil in which case that is returned, -* whitespace is not allowed if NO-WHITESPACE is non-nil, +* whitespace is not allowed and leading and trailing whitespace is + removed automatically if NO-WHITESPACE is non-nil, * \": \" is appended to PROMPT, and * an invalid DEFAULT-VALUE is silently ignored." (when default-value @@ -529,9 +530,17 @@ This is similar to `read-string', but (val (read-from-minibuffer (magit-prompt-with-default (concat prompt ": ") default-value) initial-input (and no-whitespace magit-minibuffer-local-ns-map) - nil history default-value inherit-input-method))) + nil history default-value inherit-input-method)) + (trim (lambda (regexp string) + (save-match-data + (if (string-match regexp string) + (replace-match "" t t string) + string))))) (when (and (string= val "") default-value) (setq val default-value)) + (when no-whitespace + (setq val (funcall trim "\\`\\(?:[ \t\n\r]+\\)" + (funcall trim "\\(?:[ \t\n\r]+\\)\\'" val)))) (cond ((string= val "") (user-error "Need non-empty input")) ((and no-whitespace (string-match-p "[\s\t\n]" val)) @@ -628,7 +637,7 @@ See info node `(magit)Debugging Tools' for more information." (mapcar (lambda (lib) (file-name-directory (locate-library lib))) '("magit" "magit-popup" "with-editor" - "git-commit" "dash")))) + "git-commit" "dash" "ghub")))) ;; Avoid Emacs bug#16406 by using full path. "-l" ,(file-name-sans-extension (locate-library "magit"))) " "))) diff --git a/elpa/magit-20171208.618/magit-wip.el b/elpa/magit-20180118.313/magit-wip.el similarity index 99% rename from elpa/magit-20171208.618/magit-wip.el rename to elpa/magit-20180118.313/magit-wip.el index ff7b69cb..e5df97c0 100644 --- a/elpa/magit-20171208.618/magit-wip.el +++ b/elpa/magit-20180118.313/magit-wip.el @@ -1,6 +1,6 @@ ;;; magit-wip.el --- commit snapshots to work-in-progress refs -*- lexical-binding: t -*- -;; Copyright (C) 2010-2017 The Magit Project Contributors +;; Copyright (C) 2010-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. diff --git a/elpa/magit-20171208.618/magit-worktree.el b/elpa/magit-20180118.313/magit-worktree.el similarity index 99% rename from elpa/magit-20171208.618/magit-worktree.el rename to elpa/magit-20180118.313/magit-worktree.el index 6a3e5ed5..f323c10b 100644 --- a/elpa/magit-20171208.618/magit-worktree.el +++ b/elpa/magit-20180118.313/magit-worktree.el @@ -1,6 +1,6 @@ ;;; magit-worktree.el --- worktree support -*- lexical-binding: t -*- -;; Copyright (C) 2010-2017 The Magit Project Contributors +;; Copyright (C) 2010-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. diff --git a/elpa/magit-20171208.618/magit.el b/elpa/magit-20180118.313/magit.el similarity index 99% rename from elpa/magit-20171208.618/magit.el rename to elpa/magit-20180118.313/magit.el index 94c52202..dc6a00f1 100644 --- a/elpa/magit-20171208.618/magit.el +++ b/elpa/magit-20180118.313/magit.el @@ -1,6 +1,6 @@ ;;; magit.el --- A Git porcelain inside Emacs -*- lexical-binding: t; coding: utf-8 -*- -;; Copyright (C) 2008-2017 The Magit Project Contributors +;; Copyright (C) 2008-2018 The Magit Project Contributors ;; ;; You should have received a copy of the AUTHORS.md file which ;; lists all contributors. If not, see http://magit.vc/authors. @@ -654,7 +654,7 @@ is run in the top-level directory of the current working tree." (let ((dir (abbreviate-file-name (if (or toplevel current-prefix-arg) (or (magit-toplevel) - (user-error "Not inside a Git repository")) + (magit--not-inside-repository-error)) default-directory)))) (read-shell-command (if magit-shell-command-verbose-prompt (format "Async shell command in %s: " dir) @@ -807,7 +807,7 @@ above." (if (use-region-p) (copy-region-as-kill nil nil 'region) (-when-let* ((section (magit-current-section)) - (value (magit-section-value section))) + (value (oref section value))) (magit-section-case ((branch commit module-commit tag) (let ((default-directory default-directory) ref) diff --git a/elpa/magit-20180118.313/magit.info b/elpa/magit-20180118.313/magit.info new file mode 100644 index 00000000..3829380f --- /dev/null +++ b/elpa/magit-20180118.313/magit.info @@ -0,0 +1,180 @@ +This is magit.info, produced by makeinfo version 5.2 from magit.texi. + + Copyright (C) 2015-2018 Jonas Bernoulli + + You can redistribute this document 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 document 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. +INFO-DIR-SECTION Emacs +START-INFO-DIR-ENTRY +* Magit: (magit). Using Git from Emacs with Magit. +END-INFO-DIR-ENTRY + + +Indirect: +magit.info-1: 752 +magit.info-2: 302320 + +Tag Table: +(Indirect) +Node: Top752 +Node: Introduction6103 +Node: Installation10826 +Node: Installing from an Elpa Archive11166 +Node: Installing from the Git Repository12269 +Node: Post-Installation Tasks15022 +Node: Getting Started16307 +Node: Interface Concepts21654 +Node: Modes and Buffers21986 +Node: Switching Buffers23731 +Node: Naming Buffers28272 +Node: Quitting Windows31281 +Node: Automatic Refreshing of Magit Buffers32913 +Node: Automatic Saving of File-Visiting Buffers35681 +Node: Automatic Reverting of File-Visiting Buffers36866 +Node: Risk of Reverting Automatically41862 +Node: Sections44245 +Node: Section Movement45186 +Node: Section Visibility49277 +Node: Section Hooks53124 +Node: Section Types and Values55405 +Node: Section Options56675 +Node: Popup Buffers and Prefix Commands57147 +Node: Completion Confirmation and the Selection59528 +Node: Action Confirmation59965 +Node: Completion and Confirmation66205 +Node: The Selection69391 +Node: The hunk-internal region72290 +Node: Support for Completion Frameworks73379 +Node: Additional Completion Options78195 +Node: Running Git78794 +Node: Viewing Git Output79067 +Node: Git Process Status80200 +Node: Running Git Manually81165 +Node: Git Executable83567 +Node: Global Git Arguments85849 +Node: Inspecting86655 +Node: Status Buffer87802 +Node: Status Sections90715 +Node: Status Header Sections95230 +Node: Status Module Sections97860 +Node: Status Options100361 +Node: Repository List102115 +Node: Logging104273 +Node: Refreshing Logs106720 +Node: Log Buffer108105 +Node: Log Margin111900 +Node: Select from Log114540 +Node: Reflog116644 +Node: Cherries118161 +Node: Diffing119888 +Node: Refreshing Diffs122835 +Node: Diff Buffer126326 +Node: Diff Options129060 +Node: Revision Buffer133335 +Node: Ediffing135873 +Node: References Buffer139469 +Node: References Sections146769 +Node: Bisecting147630 +Node: Visiting Blobs149368 +Node: Blaming149877 +Node: Manipulating154665 +Node: Repository Setup154981 +Node: Staging and Unstaging156021 +Node: Staging from File-Visiting Buffers160102 +Node: Applying161270 +Node: Committing163163 +Node: Initiating a Commit163746 +Node: Editing Commit Messages167057 +Node: Branching177453 +Node: The Two Remotes177653 +Node: The Branch Popup180270 +Node: The Branch Config Popup197117 +Node: Merging203021 +Node: Resolving Conflicts205188 +Node: Rebasing210189 +Node: Editing Rebase Sequences214345 +Node: Information About In-Progress Rebase217375 +Ref: Information About In-Progress Rebase-Footnote-1226123 +Node: Cherry Picking226719 +Node: Reverting228457 +Node: Resetting229820 +Node: Stashing231237 +Node: Transferring235749 +Node: Remotes235987 +Node: The Remote Popup236143 +Node: The Remote Config Popup238774 +Node: Fetching240426 +Node: Pulling241782 +Node: Pushing242618 +Node: Creating and Sending Patches247353 +Node: Applying Patches248190 +Node: Miscellaneous249776 +Node: Tagging250079 +Node: Notes250863 +Node: Submodules253174 +Node: Listing Submodules253388 +Node: Submodule Popup255265 +Node: Subtree256550 +Node: Common Commands257797 +Node: Wip Modes259543 +Node: Minor Mode for Buffers Visiting Files266340 +Node: Minor Mode for Buffers Visiting Blobs269689 +Node: Customizing270502 +Node: Per-Repository Configuration272170 +Node: Essential Settings273817 +Node: Safety274141 +Node: Performance275906 +Node: Microsoft Windows Performance282754 +Node: MacOS Performance283945 +Ref: MacOS Performance-Footnote-1285181 +Ref: MacOS Performance-Footnote-2285263 +Ref: MacOS Performance-Footnote-3285323 +Node: Plumbing285489 +Node: Calling Git286312 +Node: Getting a Value from Git287837 +Node: Calling Git for Effect290923 +Node: Section Plumbing297441 +Node: Creating Sections297669 +Node: Section Selection302320 +Node: Matching Sections304000 +Node: Refreshing Buffers309433 +Node: Conventions312568 +Node: Theming Faces312760 +Node: FAQ320875 +Node: FAQ - How to …?321317 +Node: How to show git's output?321681 +Node: How to install the gitman info manual?322435 +Node: How to show diffs for gpg-encrypted files?323405 +Node: How does branching and pushing work?324001 +Node: Can Magit be used as ‘ediff-version-control-package’?324370 +Node: FAQ - Issues and Errors326365 +Node: Magit is slow327169 +Node: I changed several thousand files at once and now Magit is unusable327383 +Node: I am having problems committing328112 +Node: I am using MS Windows and cannot push with Magit328593 +Node: I am using OS X and SOMETHING works in shell but not in Magit329210 +Node: Diffs contain control sequences330016 +Node: Expanding a file to show the diff causes it to disappear331090 +Node: Point is wrong in the ‘COMMIT_EDITMSG’ buffer331647 +Node: The mode-line information isn't always up-to-date332699 +Node: Emacs 245 hangs when loading Magit333766 +Node: A branch and tag sharing the same name breaks SOMETHING334380 +Node: Debugging Tools335186 +Node: Keystroke Index336921 +Node: Command Index366928 +Node: Function Index398536 +Node: Variable Index412585 + +End Tag Table + + +Local Variables: +coding: utf-8 +End: diff --git a/elpa/magit-20171208.618/magit.info-1 b/elpa/magit-20180118.313/magit.info-1 similarity index 98% rename from elpa/magit-20171208.618/magit.info-1 rename to elpa/magit-20180118.313/magit.info-1 index b7944ac6..1bc5412a 100644 --- a/elpa/magit-20171208.618/magit.info-1 +++ b/elpa/magit-20180118.313/magit.info-1 @@ -1,6 +1,6 @@ This is magit.info, produced by makeinfo version 5.2 from magit.texi. - Copyright (C) 2015-2017 Jonas Bernoulli + Copyright (C) 2015-2018 Jonas Bernoulli You can redistribute this document and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -30,9 +30,9 @@ to perform almost all of their daily version control tasks directly from within Emacs. While many fine Git clients exist, only Magit and Git itself deserve to be called porcelains. - This manual is for Magit version 2.11.0 (2.11.0-311-gc6ef61b2e+1). +This manual is for Magit version 2.11.0 (2.11.0-411-g73ea37afb+1). - Copyright (C) 2015-2017 Jonas Bernoulli + Copyright (C) 2015-2018 Jonas Bernoulli You can redistribute this document and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -111,6 +111,7 @@ Completion, Confirmation and the Selection Running Git * Viewing Git Output:: +* Git Process Status:: * Running Git Manually:: * Git Executable:: * Global Git Arguments:: @@ -441,10 +442,10 @@ File: magit.info, Node: Installing from the Git Repository, Next: Post-Install 2.2 Installing from the Git Repository ====================================== -Magit depends on the ‘dash’, ‘magit-popup’ and ‘with-editor’ libraries -which are available from Melpa and Melpa-Stable. Install them using -‘M-x package-install RET RET’. Of course you may also install -them manually from their development repository. +Magit depends on the ‘dash’, ‘magit-popup’, ‘ghub’ and ‘with-editor’ +libraries which are available from Melpa and Melpa-Stable. Install them +using ‘M-x package-install RET RET’. Of course you may also +install them manually from their development repository. (An ancient release of Magit is also available from Marmalade, but no new versions will be uploaded. Marmalade is unmaintained — its @@ -461,14 +462,16 @@ upload their packages in the first place.) $ make - If you haven’t installed ‘dash’, ‘magit-popup’ and ‘with-editor’ from -Melpa or at ‘/path/to/magit/../’, then you have to tell ‘make’ -where to find them. To do so create the file ‘/path/to/magit/config.mk’ -with the following content before running ‘make’: + If you haven’t installed ‘dash’, ‘magit-popup’, ‘ghub’ and +‘with-editor’ from Melpa or at ‘/path/to/magit/../’, then you +have to tell ‘make’ where to find them. To do so create the file +‘/path/to/magit/config.mk’ with the following content before running +‘make’: LOAD_PATH = -L /path/to/magit/lisp LOAD_PATH += -L /path/to/dash LOAD_PATH += -L /path/to/magit-popup + LOAD_PATH += -L /path/to/ghub LOAD_PATH += -L /path/to/with-editor Finally add this to your init file: @@ -1244,8 +1247,7 @@ section use the following commands. Move to the beginning of the parent of the current section. The above commands all call the hook ‘magit-section-movement-hook’. -And, except for the second, the below functions are all members of that -hook’s default value. +Any of the functions listed below can be used as members of this hook. -- Variable: magit-section-movement-hook @@ -1256,7 +1258,8 @@ hook’s default value. This hook function ensures that the beginning of the current section is visible, provided it is a ‘hunk’ section. Otherwise, it - does nothing. + does nothing. This function is a member of the hook’s default + value. -- Function: magit-section-set-window-start @@ -1269,13 +1272,15 @@ hook’s default value. This hook function only has an effect in log buffers, and ‘point’ is on the "show more" section. If that is the case, then it - doubles the number of commits that are being shown. + doubles the number of commits that are being shown. This function + is a member of the hook’s default value. -- Function: magit-log-maybe-update-revision-buffer When moving inside a log buffer, then this function updates the revision buffer, provided it is already being displayed in another - window of the same frame. + window of the same frame. This function is a member of the hook’s + default value. -- Function: magit-log-maybe-update-blob-buffer @@ -1388,6 +1393,15 @@ then the previous visibility is preserved. The initial visibility of certain sections can also be overwritten using the hook ‘magit-section-set-visibility-hook’. + -- User Option: magit-section-cache-visibility-types + + This option controls for which sections the previous visibility + state should be restored if a section disappears and later appears + again. The value is a list of section types. + + This requires that ‘magit-section-cached-visibility’ is a member of + ‘magit-section-set-visibility-hook’. + -- Variable: magit-section-set-visibility-hook This hook is run when first creating a buffer and also when @@ -1969,23 +1983,26 @@ File: magit.info, Node: Running Git, Prev: Completion Confirmation and the Sel * Menu: * Viewing Git Output:: +* Git Process Status:: * Running Git Manually:: * Git Executable:: * Global Git Arguments::  -File: magit.info, Node: Viewing Git Output, Next: Running Git Manually, Up: Running Git +File: magit.info, Node: Viewing Git Output, Next: Git Process Status, Up: Running Git 4.5.1 Viewing Git Output ------------------------ Magit runs Git either for side-effects (e.g. when pushing) or to get -some value (e.g. the name of the current branch). When Git is run for -side-effects, the mode line displays a process status indicator (using -the ‘magit-mode-line-process’ face), and the process output goes into a -per-repository log buffer, which can be consulted when things don’t go -as expected. Process errors are indicated at the top of the status -buffer. +some value (e.g. the name of the current branch). + + When Git is run for side-effects, the process output is logged in a +per-repository log buffer, which can be consulted using the +‘magit-process’ command when things don’t go as expected. + + The output/errors for up to ‘magit-process-log-max’ Git commands are +retained. ‘$’ (‘magit-process’) @@ -2006,9 +2023,33 @@ sections are available. There is one additional command. just negatively affects performance.  -File: magit.info, Node: Running Git Manually, Next: Git Executable, Prev: Viewing Git Output, Up: Running Git +File: magit.info, Node: Git Process Status, Next: Running Git Manually, Prev: Viewing Git Output, Up: Running Git + +4.5.2 Git Process Status +------------------------ + +When a Git process is running for side-effects, Magit displays an +indicator in the mode line, using the ‘magit-mode-line-process’ face. + + If the Git process exits successfully, the process indicator is +removed from the mode line immediately. + + In the case of a Git error, the process indicator is not removed, but +is instead highlighted with the ‘magit-mode-line-process-error’ face, +and the error details from the process buffer are provided as a tooltip +for mouse users. This error indicator persists in the mode line until +the next magit buffer refresh. + + If you do not wish process errors to be indicated in the mode line, +customize the ‘magit-process-display-mode-line-error’ user option. + + Process errors are additionally indicated at the top of the status +buffer. + + +File: magit.info, Node: Running Git Manually, Next: Git Executable, Prev: Git Process Status, Up: Running Git -4.5.2 Running Git Manually +4.5.3 Running Git Manually -------------------------- While Magit provides many Emacs commands to interact with Git, it does @@ -2077,7 +2118,7 @@ to a shell.  File: magit.info, Node: Git Executable, Next: Global Git Arguments, Prev: Running Git Manually, Up: Running Git -4.5.3 Git Executable +4.5.4 Git Executable -------------------- Except on MS Windows, Magit defaults to running Git without specifying @@ -2126,7 +2167,7 @@ machine, then you must change the value to "git".  File: magit.info, Node: Global Git Arguments, Prev: Git Executable, Up: Running Git -4.5.4 Global Git Arguments +4.5.5 Global Git Arguments -------------------------- -- User Option: magit-git-global-arguments @@ -2859,6 +2900,12 @@ visible. For example: feature origin/feature [blue-] [green-------] + Also note that while the popup features the ‘--show-signature’ +argument, that won’t actually be used when enabled, because Magit +defaults to use just one line per commit. Instead the commit colorized +to indicate the validity of the signed commit object, using the faces +named ‘magit-signature-*’ (which see). + For a description of ‘magit-log-margin’ see *note Log Margin::.  @@ -3320,6 +3367,11 @@ File: magit.info, Node: Diff Buffer, Next: Diff Options, Prev: Refreshing Dif unless the diff shows changes in the worktree, the index, or ‘HEAD’. + -- Command: magit-diff-visit-file-other-window + + From a diff, visit the corresponding file at the appropriate + position in another window. + ‘j’ (‘magit-jump-to-diffstat-or-diff’) Jump to the diffstat or diff. When point is on a file inside the @@ -3350,6 +3402,28 @@ File: magit.info, Node: Diff Options, Next: Revision Buffer, Prev: Diff Buffe • ‘all’ show fine differences for all displayed diff hunks. + -- User Option: magit-diff-adjust-tab-width + + Whether to adjust the width of tabs in diffs. + + Determining the correct width can be expensive if it requires + opening large and/or many files, so the widths are cached in the + variable ‘magit-diff--tab-width-cache’. Set that to nil to + invalidate the cache. + + • ‘nil’ Never ajust tab width. Use ‘tab-width’s value from the + Magit buffer itself instead. + + • ‘t’ If the corresponding file-visiting buffer exits, then use + ‘tab-width’’s value from that buffer. Doing this is cheap, so + this value is used even if a corresponding cache entry exists. + + • ‘always’ If there is no such buffer, then temporarily visit + the file to determine the value. + + • NUMBER Like ‘always’, but don’t visit files larger than NUMBER + bytes. + -- User Option: magit-diff-paint-whitespace Specify where to highlight whitespace errors. @@ -4781,7 +4855,7 @@ features are available from separate popups. branch. If FROM is not reachable from ‘HEAD’ or is reachable from the source branch’s upstream, then an error is raised. -‘b p’ (‘magit-branch-pull-request’) +‘b R’ (‘magit-branch-pull-request’) This command creates and configures a new branch from a Github pull-request, creating and configuring a new remote if necessary. @@ -4883,7 +4957,7 @@ features are available from separate popups. cleanup mentioned in the previous paragraph is not performed if you do that. -‘b p’ (‘magit-checkout-pull-request’) +‘b r’ (‘magit-checkout-pull-request’) This command creates and configures a new branch from a pull request, the same way ‘magit-branch-pull-request’ does. @@ -6105,6 +6179,12 @@ features are available from separate popups. Delete a remote, read from the minibuffer. +‘M p’ (‘magit-remote-prune-refspecs’) + + Remove stale refspecs and tracking branches for REMOTE. If there + are only stale refspecs, then offer to either delete the remote or + replace the refspecs with the default refspec instead. + -- User Option: magit-remote-add-set-remote.pushDefault Whether to set the value of ‘remote.pushDefault’ after adding a @@ -7764,43 +7844,3 @@ File: magit.info, Node: Creating Sections, Next: Section Selection, Up: Secti Define an interactive function to go to section SYM. TITLE is the displayed title of the section. - -File: magit.info, Node: Section Selection, Next: Matching Sections, Prev: Creating Sections, Up: Section Plumbing - -10.2.2 Section Selection ------------------------- - - -- Function: magit-current-section - - Return the section at point. - - -- Function: magit-region-sections - - Return a list of the selected sections. - - When the region is active and constitutes a valid section - selection, then return a list of all selected sections. This is - the case when the region begins in the heading of a section and - ends in the heading of a sibling of that first section. When the - selection is not valid then return nil. Most commands that can act - on the selected sections, then instead just act on the current - section, the one point is in. - - When the region looks like it would in any other buffer then the - selection is invalid. When the selection is valid then the region - uses the ‘magit-section-highlight’. This does not apply to diffs - where things get a bit more complicated, but even here if the - region looks like it usually does, then that’s not a valid - selection as far as this function is concerned. - - -- Function: magit-region-values &rest types - - Return a list of the values of the selected sections. - - Also see ‘magit-region-sections’ whose doc-string explains when a - region is a valid section selection. If the region is not active - or is not a valid section selection, then return nil. If optional - TYPES is non-nil then the selection not only has to be valid; the - types of all selected sections additionally have to match one of - TYPES, or nil is returned. - diff --git a/elpa/magit-20171208.618/magit.info-2 b/elpa/magit-20180118.313/magit.info-2 similarity index 98% rename from elpa/magit-20171208.618/magit.info-2 rename to elpa/magit-20180118.313/magit.info-2 index 03eb25d5..74466e30 100644 --- a/elpa/magit-20171208.618/magit.info-2 +++ b/elpa/magit-20180118.313/magit.info-2 @@ -1,6 +1,6 @@ This is magit.info, produced by makeinfo version 5.2 from magit.texi. - Copyright (C) 2015-2017 Jonas Bernoulli + Copyright (C) 2015-2018 Jonas Bernoulli You can redistribute this document and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -16,6 +16,46 @@ START-INFO-DIR-ENTRY * Magit: (magit). Using Git from Emacs with Magit. END-INFO-DIR-ENTRY + +File: magit.info, Node: Section Selection, Next: Matching Sections, Prev: Creating Sections, Up: Section Plumbing + +10.2.2 Section Selection +------------------------ + + -- Function: magit-current-section + + Return the section at point. + + -- Function: magit-region-sections + + Return a list of the selected sections. + + When the region is active and constitutes a valid section + selection, then return a list of all selected sections. This is + the case when the region begins in the heading of a section and + ends in the heading of a sibling of that first section. When the + selection is not valid then return nil. Most commands that can act + on the selected sections, then instead just act on the current + section, the one point is in. + + When the region looks like it would in any other buffer then the + selection is invalid. When the selection is valid then the region + uses the ‘magit-section-highlight’. This does not apply to diffs + where things get a bit more complicated, but even here if the + region looks like it usually does, then that’s not a valid + selection as far as this function is concerned. + + -- Function: magit-region-values &rest types + + Return a list of the values of the selected sections. + + Also see ‘magit-region-sections’ whose doc-string explains when a + region is a valid section selection. If the region is not active + or is not a valid section selection, then return nil. If optional + TYPES is non-nil then the selection not only has to be valid; the + types of all selected sections additionally have to match one of + TYPES, or nil is returned. +  File: magit.info, Node: Matching Sections, Prev: Section Selection, Up: Section Plumbing @@ -761,7 +801,7 @@ Appendix C Keystroke Index (line 34) * ! S: Running Git Manually. (line 39) -* $: Viewing Git Output. (line 14) +* $: Viewing Git Output. (line 16) * +: Log Buffer. (line 59) * + <1>: Refreshing Diffs. (line 68) * -: Log Buffer. (line 63) @@ -792,10 +832,10 @@ Appendix C Keystroke Index * b k: The Branch Popup. (line 237) * b l: The Branch Popup. (line 62) * b n: The Branch Popup. (line 45) -* b p: The Branch Popup. (line 113) -* b p <1>: The Branch Popup. (line 215) * B r: Bisecting. (line 47) -* b r: The Branch Popup. (line 243) +* b R: The Branch Popup. (line 113) +* b r: The Branch Popup. (line 215) +* b r <1>: The Branch Popup. (line 243) * B s: Bisecting. (line 24) * b s: The Branch Popup. (line 85) * b x: The Branch Popup. (line 221) @@ -893,7 +933,7 @@ Appendix C Keystroke Index * d w: Diffing. (line 43) * D w: Refreshing Diffs. (line 28) * DEL: Log Buffer. (line 43) -* DEL <1>: Diff Buffer. (line 63) +* DEL <1>: Diff Buffer. (line 68) * DEL <2>: Blaming. (line 69) * DEL <3>: Editing Rebase Sequences. (line 28) @@ -927,8 +967,8 @@ Appendix C Keystroke Index (line 22) * G: Automatic Refreshing of Magit Buffers. (line 31) -* j: Diff Buffer. (line 53) -* k: Viewing Git Output. (line 22) +* j: Diff Buffer. (line 58) +* k: Viewing Git Output. (line 24) * k <1>: Applying. (line 40) * k <2>: Editing Rebase Sequences. (line 68) @@ -964,6 +1004,7 @@ Appendix C Keystroke Index * m m <1>: Merging. (line 52) * m n: Merging. (line 37) * m p: Merging. (line 44) +* M p: The Remote Popup. (line 54) * M r: The Remote Popup. (line 40) * M u: The Remote Popup. (line 45) * M-1: Section Visibility. (line 33) @@ -1081,7 +1122,7 @@ Appendix C Keystroke Index (line 59) * S-: Section Visibility. (line 22) * SPC: Log Buffer. (line 33) -* SPC <1>: Diff Buffer. (line 59) +* SPC <1>: Diff Buffer. (line 64) * SPC <2>: Blaming. (line 59) * SPC <3>: Editing Rebase Sequences. (line 21) @@ -1318,6 +1359,7 @@ Appendix D Command Index * magit-diff-toggle-refine-hunk: Refreshing Diffs. (line 36) * magit-diff-unstaged: Diffing. (line 55) * magit-diff-visit-file: Diff Buffer. (line 6) +* magit-diff-visit-file-other-window: Diff Buffer. (line 53) * magit-diff-visit-file-worktree: Diff Buffer. (line 36) * magit-diff-while-committing: Refreshing Diffs. (line 80) * magit-diff-while-committing <1>: Editing Commit Messages. @@ -1360,7 +1402,7 @@ Appendix D Command Index * magit-go-forward: Log Buffer. (line 23) * magit-go-forward <1>: Refreshing Diffs. (line 94) * magit-init: Repository Setup. (line 6) -* magit-jump-to-diffstat-or-diff: Diff Buffer. (line 53) +* magit-jump-to-diffstat-or-diff: Diff Buffer. (line 58) * magit-kill-this-buffer: Minor Mode for Buffers Visiting Blobs. (line 20) * magit-list-repositories: Repository List. (line 6) @@ -1410,8 +1452,8 @@ Appendix D Command Index (line 6) * magit-pop-revision-stack: Editing Commit Messages. (line 63) -* magit-process: Viewing Git Output. (line 14) -* magit-process-kill: Viewing Git Output. (line 22) +* magit-process: Viewing Git Output. (line 16) +* magit-process-kill: Viewing Git Output. (line 24) * magit-pull: Pulling. (line 24) * magit-pull-from-pushremote: Pulling. (line 16) * magit-pull-from-upstream: Pulling. (line 20) @@ -1453,6 +1495,7 @@ Appendix D Command Index * magit-remote-config-popup <1>: The Remote Config Popup. (line 6) * magit-remote-popup: The Remote Popup. (line 13) +* magit-remote-prune-refspecs: The Remote Popup. (line 54) * magit-remote-remove: The Remote Popup. (line 50) * magit-remote-rename: The Remote Popup. (line 40) * magit-remote-set-url: The Remote Popup. (line 45) @@ -1585,8 +1628,8 @@ Appendix D Command Index * magit-wip-commit: Wip Modes. (line 129) * magit-wip-log: Wip Modes. (line 69) * magit-wip-log-current: Wip Modes. (line 77) -* scroll-down: Diff Buffer. (line 63) -* scroll-up: Diff Buffer. (line 59) +* scroll-down: Diff Buffer. (line 68) +* scroll-up: Diff Buffer. (line 64) * with-editor-cancel: Editing Commit Messages. (line 24) * with-editor-cancel <1>: Editing Rebase Sequences. @@ -1641,6 +1684,7 @@ Appendix E Function Index * magit-define-section-jumper: Creating Sections. (line 77) * magit-diff-scope: Matching Sections. (line 111) * magit-diff-type: Matching Sections. (line 88) +* magit-diff-visit-file-other-window: Diff Buffer. (line 53) * magit-display-buffer: Switching Buffers. (line 6) * magit-display-buffer-fullcolumn-most-v1: Switching Buffers. (line 72) * magit-display-buffer-fullframe-status-topleft-v1: Switching Buffers. @@ -1677,7 +1721,7 @@ Appendix E Function Index (line 24) * magit-git-wash: Calling Git for Effect. (line 70) -* magit-hunk-set-window-start: Section Movement. (line 44) +* magit-hunk-set-window-start: Section Movement. (line 43) * magit-ido-completing-read: Support for Completion Frameworks. (line 48) * magit-insert-am-sequence: Status Sections. (line 28) @@ -1741,8 +1785,8 @@ Appendix E Function Index * magit-list-repositories: Repository List. (line 6) * magit-list-submodules: Listing Submodules. (line 12) * magit-log-maybe-show-more-commits: Section Movement. (line 57) -* magit-log-maybe-update-blob-buffer: Section Movement. (line 69) -* magit-log-maybe-update-revision-buffer: Section Movement. (line 63) +* magit-log-maybe-update-blob-buffer: Section Movement. (line 71) +* magit-log-maybe-update-revision-buffer: Section Movement. (line 64) * magit-maybe-set-dedicated: Switching Buffers. (line 97) * magit-mode-display-buffer: Refreshing Buffers. (line 32) * magit-mode-quit-window: Quitting Windows. (line 31) @@ -1793,9 +1837,9 @@ Appendix E Function Index (line 105) * magit-start-process: Calling Git for Effect. (line 124) -* magit-status-maybe-update-blob-buffer: Section Movement. (line 81) +* magit-status-maybe-update-blob-buffer: Section Movement. (line 83) * magit-status-maybe-update-revision-buffer: Section Movement. - (line 75) + (line 77) * magit-wip-log: Wip Modes. (line 69) * magit-wip-log-current: Wip Modes. (line 77) * with-editor-usage-message: Editing Commit Messages. @@ -1881,15 +1925,16 @@ Appendix F Variable Index * magit-commit-squash-confirm: Initiating a Commit. (line 87) * magit-completing-read-function: Support for Completion Frameworks. (line 27) +* magit-diff-adjust-tab-width: Diff Options. (line 16) * magit-diff-buffer-file-locked: Minor Mode for Buffers Visiting Files. (line 52) -* magit-diff-hide-trailing-cr-characters: Diff Options. (line 45) -* magit-diff-highlight-hunk-region-functions: Diff Options. (line 49) -* magit-diff-highlight-indentation: Diff Options. (line 30) -* magit-diff-highlight-trailing: Diff Options. (line 25) -* magit-diff-paint-whitespace: Diff Options. (line 16) +* magit-diff-hide-trailing-cr-characters: Diff Options. (line 67) +* magit-diff-highlight-hunk-region-functions: Diff Options. (line 71) +* magit-diff-highlight-indentation: Diff Options. (line 52) +* magit-diff-highlight-trailing: Diff Options. (line 47) +* magit-diff-paint-whitespace: Diff Options. (line 38) * magit-diff-refine-hunk: Diff Options. (line 6) -* magit-diff-unmarked-lines-keep-foreground: Diff Options. (line 75) +* magit-diff-unmarked-lines-keep-foreground: Diff Options. (line 97) * magit-diff-visit-previous-blob: Diff Buffer. (line 25) * magit-display-buffer-function: Switching Buffers. (line 23) * magit-display-buffer-noselect: Switching Buffers. (line 14) @@ -1901,7 +1946,7 @@ Appendix F Variable Index * magit-file-mode: Minor Mode for Buffers Visiting Files. (line 11) * magit-generate-buffer-name-function: Naming Buffers. (line 6) -* magit-git-debug: Viewing Git Output. (line 26) +* magit-git-debug: Viewing Git Output. (line 28) * magit-git-debug <1>: Getting a Value from Git. (line 64) * magit-git-executable: Git Executable. (line 39) @@ -1943,7 +1988,7 @@ Appendix F Variable Index * magit-refs-sections-hook: References Sections. (line 13) * magit-refs-show-commit-count: References Buffer. (line 29) * magit-refs-tags-format: References Buffer. (line 109) -* magit-remote-add-set-remote.pushDefault: The Remote Popup. (line 54) +* magit-remote-add-set-remote.pushDefault: The Remote Popup. (line 60) * magit-remote-popup-show-variables: The Remote Popup. (line 18) * magit-repolist-columns: Repository List. (line 14) * magit-repository-directories: Status Buffer. (line 30) @@ -1954,8 +1999,9 @@ Appendix F Variable Index * magit-root-section: Matching Sections. (line 80) * magit-save-repository-buffers: Automatic Saving of File-Visiting Buffers. (line 13) -* magit-section-movement-hook: Section Movement. (line 39) -* magit-section-set-visibility-hook: Section Visibility. (line 78) +* magit-section-cache-visibility-types: Section Visibility. (line 78) +* magit-section-movement-hook: Section Movement. (line 38) +* magit-section-set-visibility-hook: Section Visibility. (line 87) * magit-section-show-child-count: Section Options. (line 9) * magit-shell-command-verbose-prompt: Running Git Manually. (line 46) @@ -1971,7 +2017,7 @@ Appendix F Variable Index * magit-uniquify-buffer-names: Naming Buffers. (line 67) * magit-unstage-committed: Staging and Unstaging. (line 56) -* magit-update-other-window-delay: Section Movement. (line 87) +* magit-update-other-window-delay: Section Movement. (line 89) * magit-use-sticky-arguments: Popup Buffers and Prefix Commands. (line 36) * magit-visit-ref-behavior: References Buffer. (line 129) -- 2.47.3