diff options
| author | Michael Albinus | 2023-10-13 16:16:19 +0200 |
|---|---|---|
| committer | Michael Albinus | 2023-10-13 16:16:19 +0200 |
| commit | 9f83b46beeb26997fb9fa9c357bda8e88fa0f182 (patch) | |
| tree | 1b7628a900121894ec4a8a0567c6774f249f3f37 /doc | |
| parent | fde5f1a1a390f26d70121898bb2456153f2640fb (diff) | |
| parent | 53292c5d8186dfac5c82b0d16a10d91c691ae75f (diff) | |
| download | emacs-9f83b46beeb26997fb9fa9c357bda8e88fa0f182.tar.gz emacs-9f83b46beeb26997fb9fa9c357bda8e88fa0f182.zip | |
Merge from origin/emacs-29
53292c5d818 Fix treesit-query-validate for string input (bug#66400)
81a0c1ed2e4 ; Improve documentation of VC commands
0590e3e69a9 Recommend `M-x man` in woman.el docs
809da7fc9a1 ; * doc/lispref/processes.texi (Process Buffers): More ac...
8f23a02a9ea Fix updating process-mark position in 'set-process-buffer'
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/emacs/maintaining.texi | 304 | ||||
| -rw-r--r-- | doc/lispref/processes.texi | 6 |
2 files changed, 181 insertions, 129 deletions
diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi index d37cefebb01..0725d889747 100644 --- a/doc/emacs/maintaining.texi +++ b/doc/emacs/maintaining.texi | |||
| @@ -482,22 +482,23 @@ system, but is usually not excessive. | |||
| 482 | @cindex filesets, VC | 482 | @cindex filesets, VC |
| 483 | @cindex VC filesets | 483 | @cindex VC filesets |
| 484 | Most VC commands operate on @dfn{VC filesets}. A VC fileset is a | 484 | Most VC commands operate on @dfn{VC filesets}. A VC fileset is a |
| 485 | collection of one or more files that a VC operation acts on. When you | 485 | collection of one or more files that a VC operation acts upon. When |
| 486 | type VC commands in a buffer visiting a version-controlled file, the | 486 | you type VC commands in a buffer visiting a version-controlled file, |
| 487 | VC fileset is simply that one file. When you type them in a VC | 487 | the VC fileset is simply that one file. When you type them in a VC |
| 488 | Directory buffer, and some files in it are marked, the VC fileset | 488 | Directory buffer, and some files in it are marked, the VC fileset |
| 489 | consists of the marked files (@pxref{VC Directory Mode}). Likewise, | 489 | consists of the marked files (@pxref{VC Directory Mode}). Likewise, |
| 490 | when you invoke a VC command from a Dired buffer, the VC fileset | 490 | when you invoke a VC command from a Dired buffer, the VC fileset |
| 491 | consists of the marked files (@pxref{Marks vs Flags}), defaulting to | 491 | consists of the marked files (@pxref{Marks vs Flags}), defaulting to |
| 492 | the file shown on the current line if no files are marked. | 492 | the file shown on the current line if no files are marked. |
| 493 | 493 | ||
| 494 | On modern changeset-based version control systems (@pxref{VCS | 494 | With modern changeset-based version control systems (@pxref{VCS |
| 495 | Changesets}), VC commands handle multi-file VC filesets as a group. | 495 | Changesets}), such as Git, Mercurial, and Bazaar, VC commands handle |
| 496 | For example, committing a multi-file VC fileset generates a single | 496 | multi-file VC filesets as a group. For example, committing a |
| 497 | revision, containing the changes to all those files. On older | 497 | multi-file VC fileset generates a single revision, containing the |
| 498 | file-based version control systems like CVS, each file in a multi-file | 498 | changes to all those files. On older file-based version control |
| 499 | VC fileset is handled individually; for example, a commit generates | 499 | systems like CVS, each file in a multi-file VC fileset is handled |
| 500 | one revision for each changed file. | 500 | individually; thus, committing a fileset generates one revision for |
| 501 | each changed file in the fileset. | ||
| 501 | 502 | ||
| 502 | @table @kbd | 503 | @table @kbd |
| 503 | @item C-x v v | 504 | @item C-x v v |
| @@ -508,14 +509,16 @@ VC fileset. | |||
| 508 | @findex vc-next-action | 509 | @findex vc-next-action |
| 509 | @kindex C-x v v | 510 | @kindex C-x v v |
| 510 | The principal VC command is a multi-purpose command, @kbd{C-x v v} | 511 | The principal VC command is a multi-purpose command, @kbd{C-x v v} |
| 511 | (@code{vc-next-action}), which performs the most appropriate | 512 | (@code{vc-next-action}), which performs the most appropriate action on |
| 512 | action on the current VC fileset: either registering it with a version | 513 | the current VC fileset: either registering it with a version control |
| 513 | control system, or committing it, or unlocking it, or merging changes | 514 | system, or committing it, or unlocking it, or merging changes into it. |
| 514 | into it. The precise actions are described in detail in the following | 515 | The precise actions for each situation are described in detail in the |
| 515 | subsections. You can use @kbd{C-x v v} either in a file-visiting | 516 | following subsections. You can use @kbd{C-x v v} either in a |
| 516 | buffer, in a Dired buffer, or in a VC Directory buffer; in the latter | 517 | file-visiting buffer, in a Dired buffer, or in a VC Directory buffer; |
| 517 | two cases the command operates on the fileset consisting of the marked | 518 | in the latter two cases the command operates on the fileset consisting |
| 518 | files. | 519 | of the marked files. You can also use @kbd{C-x v v}, in a buffer with |
| 520 | patches under Diff Mode (@pxref{Diff Mode}), in which case the command | ||
| 521 | operates on the files whose diffs are shown in the buffer. | ||
| 519 | 522 | ||
| 520 | Note that VC filesets are distinct from the named filesets used | 523 | Note that VC filesets are distinct from the named filesets used |
| 521 | for viewing and visiting files in functional groups | 524 | for viewing and visiting files in functional groups |
| @@ -523,7 +526,7 @@ for viewing and visiting files in functional groups | |||
| 523 | and don't persist across sessions. | 526 | and don't persist across sessions. |
| 524 | 527 | ||
| 525 | @menu | 528 | @menu |
| 526 | * VC With A Merging VCS:: Without locking: default mode for CVS. | 529 | * VC With A Merging VCS:: Without locking: default mode for Git, Hg, SVN, CVS. |
| 527 | * VC With A Locking VCS:: RCS in its default mode, SCCS, and optionally CVS. | 530 | * VC With A Locking VCS:: RCS in its default mode, SCCS, and optionally CVS. |
| 528 | * Advanced C-x v v:: Advanced features available with a prefix argument. | 531 | * Advanced C-x v v:: Advanced features available with a prefix argument. |
| 529 | @end menu | 532 | @end menu |
| @@ -531,44 +534,56 @@ and don't persist across sessions. | |||
| 531 | @node VC With A Merging VCS | 534 | @node VC With A Merging VCS |
| 532 | @subsubsection Basic Version Control with Merging | 535 | @subsubsection Basic Version Control with Merging |
| 533 | 536 | ||
| 534 | On a merging-based version control system (i.e., most modern ones; | 537 | With a modern merging-based version control system (such as Git and Hg; |
| 535 | @pxref{VCS Merging}), @kbd{C-x v v} does the following: | 538 | @pxref{VCS Merging}), @kbd{C-x v v} does the following when invoked |
| 539 | from a buffer that visits a version-controlled file or a VC Directory | ||
| 540 | or Dired buffer: | ||
| 536 | 541 | ||
| 537 | @itemize @bullet | 542 | @itemize @bullet |
| 538 | @item | 543 | @item |
| 539 | If there is more than one file in the VC fileset and the files have | 544 | If there is more than one file in the VC fileset and the files have |
| 540 | inconsistent version control statuses, signal an error. (Note, | 545 | inconsistent version control statuses, signal an error. (Note, |
| 541 | however, that a fileset is allowed to include both newly-added | 546 | however, that a fileset is allowed to include both newly-added files |
| 542 | files and modified files; @pxref{Registering}.) | 547 | and modified files; @pxref{Registering}.) Also signal an error if the |
| 548 | files in the fileset are missing (removed from the filesystem, but | ||
| 549 | still tracked by version control), or are ignored by version control. | ||
| 543 | 550 | ||
| 544 | @item | 551 | @item |
| 545 | If none of the files in the VC fileset are registered with a version | 552 | If every file in the VC fileset is registered and unchanged with |
| 546 | control system, register the VC fileset, i.e., place it under version | 553 | respect to the last revision, do nothing. |
| 547 | control. @xref{Registering}. If Emacs cannot find a system to | ||
| 548 | register under, it prompts for a repository type, creates a new | ||
| 549 | repository, and registers the VC fileset with it. | ||
| 550 | |||
| 551 | @item | ||
| 552 | If every work file in the VC fileset is unchanged, do nothing. | ||
| 553 | |||
| 554 | @item | ||
| 555 | If every work file in the VC fileset has been modified, commit the | ||
| 556 | changes. To do this, Emacs pops up a @file{*vc-log*} buffer; type the | ||
| 557 | desired log entry for the new revision, followed by @kbd{C-c C-c} to | ||
| 558 | commit. @xref{Log Buffer}. | ||
| 559 | |||
| 560 | If committing to a shared repository, the commit may fail if the | ||
| 561 | repository has been changed since your last update. In that | ||
| 562 | case, you must perform an update before trying again. On a | ||
| 563 | decentralized version control system, use @kbd{C-x v +} | ||
| 564 | (@pxref{Pulling / Pushing}) or @kbd{C-x v m} (@pxref{Merging}). | ||
| 565 | On a centralized version control system, type @kbd{C-x v v} again to | ||
| 566 | merge in the repository changes. | ||
| 567 | 554 | ||
| 568 | @item | 555 | @item |
| 569 | Finally, if you are using a centralized version control system, check | 556 | If none of the files in the VC fileset are registered with a version |
| 570 | if each work file in the VC fileset is up-to-date. If any file has | 557 | control system, register the newly-added files in the VC fileset, |
| 571 | been changed in the repository, offer to update it. | 558 | i.e., place them under version control. @xref{Registering}. If Emacs |
| 559 | cannot find a system to register under, it prompts for a repository | ||
| 560 | type, creates a new repository, and registers the VC fileset with it. | ||
| 561 | You can also specify the system explicitly, see @ref{Advanced C-x v | ||
| 562 | v}. Note that registering the files doesn't commit them; you must | ||
| 563 | invoke @w{@kbd{C-x v v}} again to commit, see below. | ||
| 564 | |||
| 565 | @item | ||
| 566 | If every file in the VC fileset has been either newly-added or | ||
| 567 | modified, commit the changed files. To do this, Emacs pops up a | ||
| 568 | @file{*vc-log*} buffer; type the desired log entry for the changes, | ||
| 569 | followed by @kbd{C-c C-c} to commit. @xref{Log Buffer}. | ||
| 570 | |||
| 571 | With modern decentralized version control systems (Git, Mercurial, | ||
| 572 | etc.), the changes are committed locally and not automatically | ||
| 573 | propagated to the upstream repository (which is usually on a remote | ||
| 574 | host). In these cases, if the repository has been changed since your | ||
| 575 | last update, the commit may fail. In that case, you must update from | ||
| 576 | upstream and then try again. Use @kbd{C-x v +} (@pxref{Pulling / | ||
| 577 | Pushing}) or @kbd{C-x v m} (@pxref{Merging}) for that. | ||
| 578 | |||
| 579 | With a centralized version control system, if the commit fails due to | ||
| 580 | upstream changes, type @kbd{C-x v v} again to merge in the upstream | ||
| 581 | repository changes. | ||
| 582 | |||
| 583 | @item | ||
| 584 | Finally, if you are using a centralized version control system, if any | ||
| 585 | file in the VC fileset is outdated with respect to the upstream | ||
| 586 | repository, offer to update the fileset from the repository. | ||
| 572 | @end itemize | 587 | @end itemize |
| 573 | 588 | ||
| 574 | These rules also apply when you use RCS in its non-locking mode, | 589 | These rules also apply when you use RCS in its non-locking mode, |
| @@ -582,43 +597,60 @@ changes. In addition, locking is possible with RCS even in this mode: | |||
| 582 | @kbd{C-x v v} with an unmodified file locks the file, just as it does | 597 | @kbd{C-x v v} with an unmodified file locks the file, just as it does |
| 583 | with RCS in its normal locking mode (@pxref{VC With A Locking VCS}). | 598 | with RCS in its normal locking mode (@pxref{VC With A Locking VCS}). |
| 584 | 599 | ||
| 600 | If @kbd{C-x v v} is invoked from a buffer under Diff Mode, the | ||
| 601 | command assumes the buffer holds a set of patches for one or more | ||
| 602 | files. It then applies the changes to the respective files and | ||
| 603 | commits the changes after popping up the @file{*vc-log*} buffer to | ||
| 604 | allow you to type a suitable commit log message. | ||
| 605 | |||
| 585 | @node VC With A Locking VCS | 606 | @node VC With A Locking VCS |
| 586 | @subsubsection Basic Version Control with Locking | 607 | @subsubsection Basic Version Control with Locking |
| 587 | 608 | ||
| 588 | On a locking-based version control system (such as SCCS, and RCS in | 609 | With a locking-based version control system (such as SCCS, and RCS in |
| 589 | its default mode), @kbd{C-x v v} does the following: | 610 | its default mode), @kbd{C-x v v} does the following: |
| 590 | 611 | ||
| 591 | @itemize @bullet | 612 | @itemize @bullet |
| 592 | @item | 613 | @item |
| 593 | If there is more than one file in the VC fileset and the files have | 614 | If there is more than one file in the VC fileset and the files have |
| 594 | inconsistent version control statuses, signal an error. | 615 | inconsistent version control statuses, signal an error. Also signal |
| 616 | an error if the files in the fileset are missing (removed from the | ||
| 617 | filesystem, but still tracked by version control). | ||
| 595 | 618 | ||
| 596 | @item | 619 | @item |
| 597 | If each file in the VC fileset is not registered with a version | 620 | If each file in the VC fileset is not registered with a version |
| 598 | control system, register the VC fileset. @xref{Registering}. If | 621 | control system, register the newly-added files in the fileset. |
| 599 | Emacs cannot find a system to register under, it prompts for a | 622 | @xref{Registering}. If Emacs cannot find a system to register under, |
| 600 | repository type, creates a new repository, and registers the VC | 623 | it prompts for a repository type, creates a new repository, and |
| 601 | fileset with it. | 624 | registers the VC fileset with it. You can also specify the system |
| 625 | explicitly, see @ref{Advanced C-x v v}. | ||
| 602 | 626 | ||
| 603 | @item | 627 | @item |
| 604 | If each file is registered and unlocked, lock it and make it writable, | 628 | If each file is registered and unlocked, check the files out: lock |
| 605 | so that you can begin to edit it. | 629 | each one and make it writable, so that you can begin to edit it. |
| 606 | 630 | ||
| 607 | @item | 631 | @item |
| 608 | If each file is locked by you and contains changes, commit the | 632 | If each file is locked by you and contains changes, commit (a.k.a.@: |
| 609 | changes. To do this, Emacs pops up a @file{*vc-log*} buffer; type the | 633 | ``check-in'') the changes. To do this, Emacs pops up a |
| 610 | desired log entry for the new revision, followed by @kbd{C-c C-c} to | 634 | @file{*vc-log*} buffer; type the desired log entry for the new |
| 611 | commit (@pxref{Log Buffer}). | 635 | revision, followed by @kbd{C-c C-c} to commit (@pxref{Log Buffer}). |
| 612 | 636 | ||
| 613 | @item | 637 | @item |
| 614 | If each file is locked by you, but you have not changed it, release | 638 | If each file is locked by you, but you have not changed it, release |
| 615 | the lock and make the file read-only again. | 639 | the lock and make the file read-only again. This undoes previous |
| 640 | check-out operation for files that were not changed since the | ||
| 641 | checkout. | ||
| 616 | 642 | ||
| 617 | @item | 643 | @item |
| 618 | If each file is locked by another user, ask whether you want to | 644 | If each file is locked by another user, ask whether you want to |
| 619 | steal the lock. If you say yes, the file becomes locked by you, | 645 | steal the lock. If you say yes, the file becomes locked by you, |
| 620 | and a warning message is sent to the user who had formerly locked the | 646 | and a warning message is sent to the user who had formerly locked the |
| 621 | file. | 647 | file. |
| 648 | |||
| 649 | @item | ||
| 650 | If files in the fileset are unlocked, but have changes with respect to | ||
| 651 | their last revision, offer to claim the lock for each such file or to | ||
| 652 | revert the file to the last checked-in revision. (This situation is | ||
| 653 | exceptional and should not normally happen.) | ||
| 622 | @end itemize | 654 | @end itemize |
| 623 | 655 | ||
| 624 | These rules also apply when you use CVS in locking mode, except | 656 | These rules also apply when you use CVS in locking mode, except |
| @@ -643,19 +675,21 @@ and Emacs fails to detect the correct one. | |||
| 643 | @item | 675 | @item |
| 644 | Otherwise, if using CVS, RCS or SRC, you can specify a revision ID. | 676 | Otherwise, if using CVS, RCS or SRC, you can specify a revision ID. |
| 645 | 677 | ||
| 646 | If the fileset is modified (or locked), this makes Emacs commit with | 678 | If the fileset is modified (or locked), this makes Emacs commit the |
| 647 | that revision ID@. You can create a new branch by supplying an | 679 | files with that revision ID@. You can create a new branch by |
| 648 | appropriate revision ID (@pxref{Branches}). | 680 | supplying an appropriate revision ID (@pxref{Branches}). |
| 649 | 681 | ||
| 650 | If the fileset is unmodified (and unlocked), this checks the specified | 682 | If the fileset is unmodified (and unlocked), this checks out the |
| 651 | revision into the working tree. You can also specify a revision on | 683 | specified revision into the working tree. You can also specify a |
| 652 | another branch by giving its revision or branch ID (@pxref{Switching | 684 | revision on another branch by giving its revision or branch ID |
| 653 | Branches}). An empty argument (i.e., @kbd{C-u C-x v v @key{RET}}) | 685 | (@pxref{Switching Branches}). An empty argument (i.e., @kbd{C-u C-x v |
| 654 | checks out the latest (head) revision on the current branch. | 686 | v @key{RET}}) checks out the latest (a.k.a.@: ``head'') revision on |
| 655 | 687 | the current branch. | |
| 656 | This is silently ignored on a decentralized version control system. | 688 | |
| 657 | Those systems do not let you specify your own revision IDs, nor do | 689 | Specifying revision ID in this manner is silently ignored by a |
| 658 | they use the concept of checking out individual files. | 690 | decentralized version control system. Those systems do not let you |
| 691 | specify your own revision IDs, nor do they use the concept of checking | ||
| 692 | out individual files. | ||
| 659 | @end itemize | 693 | @end itemize |
| 660 | 694 | ||
| 661 | @node Log Buffer | 695 | @node Log Buffer |
| @@ -789,17 +823,21 @@ If Emacs cannot find a version control system to register the file | |||
| 789 | under, it prompts for a repository type, creates a new repository, and | 823 | under, it prompts for a repository type, creates a new repository, and |
| 790 | registers the file into that repository. | 824 | registers the file into that repository. |
| 791 | 825 | ||
| 792 | On most version control systems, registering a file with @kbd{C-x v | 826 | @cindex added files, VC |
| 793 | i} or @kbd{C-x v v} adds it to the working tree but not to the | 827 | @cindex files added to VCS |
| 794 | repository. Such files are labeled as @samp{added} in the VC | 828 | With most version control systems, registering a file with |
| 795 | Directory buffer, and show a revision ID of @samp{@@@@} in the mode | 829 | @w{@kbd{C-x v i}} or @w{@kbd{C-x v v}} adds it to the working tree, |
| 796 | line. To make the registration take effect in the repository, you | 830 | but does not commit it, i.e., doesn't add it to the repository. Such |
| 797 | must perform a commit (@pxref{Basic VC Editing}). Note that a single | 831 | files are labeled as @dfn{added} in the VC Directory buffer, and the |
| 798 | commit can include both file additions and edits to existing files. | 832 | mode line of the buffers visiting such files shows a revision ID of |
| 799 | 833 | @samp{@@@@}. To make the registration take effect in the repository, | |
| 800 | On a locking-based version control system (@pxref{VCS Merging}), | 834 | you must commit the newly-added files (@pxref{Basic VC Editing}). |
| 835 | Note that a single commit can include both file additions and edits to | ||
| 836 | files already known to the VCS. | ||
| 837 | |||
| 838 | With a locking-based version control system (@pxref{VCS Merging}), | ||
| 801 | registering a file leaves it unlocked and read-only. Type @kbd{C-x v | 839 | registering a file leaves it unlocked and read-only. Type @kbd{C-x v |
| 802 | v} to start editing it. | 840 | v} to check-out the file and start editing it. |
| 803 | 841 | ||
| 804 | @node Old Revisions | 842 | @node Old Revisions |
| 805 | @subsection Examining And Comparing Old Revisions | 843 | @subsection Examining And Comparing Old Revisions |
| @@ -1564,32 +1602,39 @@ commit will be committed to that specific branch. | |||
| 1564 | @subsubsection Pulling/Pushing Changes into/from a Branch | 1602 | @subsubsection Pulling/Pushing Changes into/from a Branch |
| 1565 | 1603 | ||
| 1566 | @table @kbd | 1604 | @table @kbd |
| 1605 | @cindex push changes to upstream (VC) | ||
| 1567 | @item C-x v P | 1606 | @item C-x v P |
| 1568 | On a decentralized version control system, update another location | 1607 | With a decentralized version control system, update another repository |
| 1569 | with changes from the current branch (a.k.a. ``push'' changes). This | 1608 | with locally-committed changes from the current branch (a.k.a.@: |
| 1570 | concept does not exist for centralized version control systems | 1609 | @dfn{push} changes). This concept does not exist for centralized |
| 1610 | version control systems | ||
| 1571 | 1611 | ||
| 1612 | @cindex pull changes from upstream (VC) | ||
| 1572 | @item C-x v + | 1613 | @item C-x v + |
| 1573 | On a decentralized version control system, update the current branch | 1614 | With a decentralized version control system, update the current branch |
| 1574 | by ``pulling in'' changes from another location. | 1615 | of the local repository by @dfn{pulling in} changes from another |
| 1616 | repository. | ||
| 1575 | 1617 | ||
| 1576 | On a centralized version control system, update the current VC | 1618 | With a centralized version control system, update the current VC |
| 1577 | fileset. | 1619 | fileset from the repository. |
| 1578 | @end table | 1620 | @end table |
| 1579 | 1621 | ||
| 1580 | @kindex C-x v P | 1622 | @kindex C-x v P |
| 1581 | @findex vc-push | 1623 | @findex vc-push |
| 1624 | @cindex upstream repository | ||
| 1582 | On a decentralized version control system, the command @kbd{C-x v P} | 1625 | On a decentralized version control system, the command @kbd{C-x v P} |
| 1583 | (@code{vc-push}) updates another location with changes from the | 1626 | (@code{vc-push}) updates another location, commonly known as the |
| 1627 | @dfn{upstream repository}, with locally-committed changes from the | ||
| 1584 | current branch. With a prefix argument, it prompts for the exact | 1628 | current branch. With a prefix argument, it prompts for the exact |
| 1585 | version control command to run, which lets you specify where to push | 1629 | version control command to run, which lets you specify where to push |
| 1586 | changes; the default is @kbd{bzr push} with Bazaar, @kbd{git | 1630 | changes; the default is @kbd{bzr push} with Bazaar, @kbd{git push} |
| 1587 | push} with Git, and @kbd{hg push} with Mercurial. The default | 1631 | with Git, and @kbd{hg push} with Mercurial. The default commands |
| 1588 | commands always push to a default location determined by the version | 1632 | always push to the repository in the default location determined by |
| 1589 | control system from your branch configuration. | 1633 | the version control system from your branch configuration. |
| 1590 | 1634 | ||
| 1591 | Prior to pushing, you can use @kbd{C-x v O} (@code{vc-log-outgoing}) | 1635 | Prior to pushing, you can use @kbd{C-x v O} (@code{vc-log-outgoing}) |
| 1592 | to view a log buffer of the changes to be sent. @xref{VC Change Log}. | 1636 | to view a log buffer of the changes to be sent upstream. @xref{VC |
| 1637 | Change Log}. | ||
| 1593 | 1638 | ||
| 1594 | @cindex bound branch (Bazaar VCS) | 1639 | @cindex bound branch (Bazaar VCS) |
| 1595 | This command is currently supported only by Bazaar, Git, and Mercurial. | 1640 | This command is currently supported only by Bazaar, Git, and Mercurial. |
| @@ -1603,13 +1648,15 @@ bound. | |||
| 1603 | 1648 | ||
| 1604 | @kindex C-x v + | 1649 | @kindex C-x v + |
| 1605 | @findex vc-pull | 1650 | @findex vc-pull |
| 1606 | On a decentralized version control system, the command @kbd{C-x v +} | 1651 | With a decentralized version control system, the command @kbd{C-x v |
| 1607 | (@code{vc-pull}) updates the current branch and working tree. It is | 1652 | +} (@code{vc-pull}) updates the current branch of the local repository |
| 1608 | typically used to update a copy of a remote branch. If you supply a | 1653 | and it working tree with changes made in the upstream repository. It |
| 1609 | prefix argument, the command prompts for the exact version control | 1654 | is typically used to update a copy (a.k.a.@: @dfn{clone}) of a remote |
| 1610 | command to use, which lets you specify where to pull changes from. | 1655 | branch. If you supply a prefix argument, the command prompts for the |
| 1611 | Otherwise, it pulls from a default location determined by the version | 1656 | exact version control command to use, which lets you specify where to |
| 1612 | control system. | 1657 | pull changes from. Otherwise, it pulls from the repository in the |
| 1658 | default location determined by the version control system from your | ||
| 1659 | branch configuration. | ||
| 1613 | 1660 | ||
| 1614 | Amongst decentralized version control systems, @kbd{C-x v +} is | 1661 | Amongst decentralized version control systems, @kbd{C-x v +} is |
| 1615 | currently supported only by Bazaar, Git, and Mercurial. With Bazaar, | 1662 | currently supported only by Bazaar, Git, and Mercurial. With Bazaar, |
| @@ -1625,7 +1672,7 @@ the working directory. | |||
| 1625 | to view a log buffer of the changes to be applied. @xref{VC Change | 1672 | to view a log buffer of the changes to be applied. @xref{VC Change |
| 1626 | Log}. | 1673 | Log}. |
| 1627 | 1674 | ||
| 1628 | On a centralized version control system like CVS, @kbd{C-x v +} | 1675 | With a centralized version control system like CVS, @kbd{C-x v +} |
| 1629 | updates the current VC fileset from the repository. | 1676 | updates the current VC fileset from the repository. |
| 1630 | 1677 | ||
| 1631 | @node Merging | 1678 | @node Merging |
| @@ -1634,36 +1681,36 @@ updates the current VC fileset from the repository. | |||
| 1634 | 1681 | ||
| 1635 | @table @kbd | 1682 | @table @kbd |
| 1636 | @item C-x v m | 1683 | @item C-x v m |
| 1637 | On a decentralized version control system, merge changes from another | 1684 | With a decentralized version control system, merge changes from another |
| 1638 | branch into the current one. | 1685 | branch into the current one. |
| 1639 | 1686 | ||
| 1640 | On a centralized version control system, merge changes from another | 1687 | With a centralized version control system, merge changes from another |
| 1641 | branch into the current VC fileset. | 1688 | branch into the current VC fileset. |
| 1642 | @end table | 1689 | @end table |
| 1643 | 1690 | ||
| 1644 | While developing a branch, you may sometimes need to @dfn{merge} in | 1691 | While developing a branch, you may sometimes need to @dfn{merge} in |
| 1645 | changes that have already been made in another branch. This is not a | 1692 | changes that have already been made in another branch. This is not a |
| 1646 | trivial operation, as overlapping changes may have been made to the | 1693 | trivial operation, as overlapping and conflicting changes may have |
| 1647 | two branches. | 1694 | been made to the two branches. |
| 1648 | 1695 | ||
| 1649 | On a decentralized version control system, merging is done with the | 1696 | With a decentralized version control system, you merge changes with |
| 1650 | command @kbd{C-x v m} (@code{vc-merge}). On Bazaar, this prompts for | 1697 | the command @kbd{C-x v m} (@code{vc-merge}). With Bazaar, this |
| 1651 | the exact arguments to pass to @kbd{bzr merge}, offering a | 1698 | prompts for the exact arguments to pass to the @command{bzr merge} |
| 1652 | sensible default if possible. On Git, this prompts for the name of a | 1699 | command, offering a sensible default if possible. With Git, this |
| 1653 | branch to merge from, with completion (based on the branch names known | 1700 | prompts for the name of a branch to merge from, with completion (based |
| 1654 | to the current repository). With Mercurial, this prompts for argument | 1701 | on the branch names known to the current repository). With Mercurial, |
| 1655 | to pass to @kbd{hg merge}. The output from running the merge | 1702 | this prompts for argument to pass to @command{hg merge}. The output |
| 1656 | command is shown in a separate buffer. | 1703 | from running the merge command is shown in a separate buffer. |
| 1657 | 1704 | ||
| 1658 | On a centralized version control system like CVS, @kbd{C-x v m} | 1705 | With a centralized version control system like CVS, @kbd{C-x v m} |
| 1659 | prompts for a branch ID, or a pair of revision IDs (@pxref{Switching | 1706 | prompts for a branch ID, or a pair of revision IDs (@pxref{Switching |
| 1660 | Branches}); then it finds the changes from that branch, or the changes | 1707 | Branches}); then it finds the changes from that branch, or the changes |
| 1661 | between the two revisions you specified, and merges those changes into | 1708 | between the two revisions you specified, and merges those changes into |
| 1662 | the current VC fileset. If you just type @kbd{@key{RET}}, Emacs simply | 1709 | the current VC fileset. If you just type @kbd{@key{RET}} at the |
| 1663 | merges any changes that were made on the same branch since you checked | 1710 | prompt, Emacs simply merges any changes that were made on the same |
| 1664 | the file out. | 1711 | branch since you checked the file out. |
| 1665 | 1712 | ||
| 1666 | @cindex conflicts | 1713 | @cindex conflicts, VC |
| 1667 | @cindex resolving conflicts | 1714 | @cindex resolving conflicts |
| 1668 | Immediately after performing a merge, only the working tree is | 1715 | Immediately after performing a merge, only the working tree is |
| 1669 | modified, and you can review the changes produced by the merge with | 1716 | modified, and you can review the changes produced by the merge with |
| @@ -1672,9 +1719,12 @@ two branches contained overlapping changes, merging produces a | |||
| 1672 | @dfn{conflict}; a warning appears in the output of the merge command, | 1719 | @dfn{conflict}; a warning appears in the output of the merge command, |
| 1673 | and @dfn{conflict markers} are inserted into each affected work file, | 1720 | and @dfn{conflict markers} are inserted into each affected work file, |
| 1674 | surrounding the two sets of conflicting changes. You must then | 1721 | surrounding the two sets of conflicting changes. You must then |
| 1675 | resolve the conflict by editing the conflicted files. Once you are | 1722 | resolve the conflict by editing the conflicted files; by default, |
| 1676 | done, the modified files must be committed in the usual way for the | 1723 | Emacs will place buffers with VC conflicts in the special Smerge mode, |
| 1677 | merge to take effect (@pxref{Basic VC Editing}). | 1724 | which provides special commands for resolving the merge conflicts. |
| 1725 | Once you are done with resolving the conflicts and have saved the | ||
| 1726 | files with resolved conflicts, those files must be committed in the | ||
| 1727 | usual way for the merge to take effect (@pxref{Basic VC Editing}). | ||
| 1678 | 1728 | ||
| 1679 | @node Creating Branches | 1729 | @node Creating Branches |
| 1680 | @subsubsection Creating New Branches | 1730 | @subsubsection Creating New Branches |
diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi index df5e2139237..3e7872208a2 100644 --- a/doc/lispref/processes.texi +++ b/doc/lispref/processes.texi | |||
| @@ -1660,8 +1660,10 @@ from previous output. | |||
| 1660 | @defun set-process-buffer process buffer | 1660 | @defun set-process-buffer process buffer |
| 1661 | This function sets the buffer associated with @var{process} to | 1661 | This function sets the buffer associated with @var{process} to |
| 1662 | @var{buffer}. If @var{buffer} is @code{nil}, the process becomes | 1662 | @var{buffer}. If @var{buffer} is @code{nil}, the process becomes |
| 1663 | associated with no buffer; if non-@code{nil}, the process mark will be | 1663 | associated with no buffer; if non-@code{nil} and different from the |
| 1664 | set to point to the end of @var{buffer}. | 1664 | buffer associated with the process, the process mark will be set to |
| 1665 | point to the end of @var{buffer} (unless the process mark is already | ||
| 1666 | associated with @var{buffer}). | ||
| 1665 | @end defun | 1667 | @end defun |
| 1666 | 1668 | ||
| 1667 | @defun get-buffer-process buffer-or-name | 1669 | @defun get-buffer-process buffer-or-name |