annotate lib-src/rcs-checkin @ 99492:ee792794d888

(isearch-search-fun): Compare the length of the current search string with the length of the string from the previous search state to detect the situation when the user adds or removes characters in the search string. Use word-search-forward-lax and word-search-backward-lax in this case, and otherwise word-search-forward and word-search-backward.
author Juri Linkov <juri@jurta.org>
date Tue, 11 Nov 2008 19:43:09 +0000
parents 3a4bc081639c
children a9f7e446141d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12507
da322c027bf0 Replace `#!/bin/sh' with `#! /bin/sh', for benefit of systems
Paul Eggert <eggert@twinsun.com>
parents: 9611
diff changeset
1 #! /bin/sh
2273
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
2
2275
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
3 # This script accepts any number of file arguments and checks them into RCS.
36226
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 12507
diff changeset
4
94828
3a4bc081639c Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79748
diff changeset
5 # Copyright (C) 1993, 1994, 1995, 2001, 2002, 2003, 2004, 2005, 2006,
3a4bc081639c Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79748
diff changeset
6 # 2007, 2008 Free Software Foundation, Inc.
3a4bc081639c Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79748
diff changeset
7
36226
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 12507
diff changeset
8 # This file is part of GNU Emacs.
94828
3a4bc081639c Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79748
diff changeset
9
3a4bc081639c Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79748
diff changeset
10 # GNU Emacs is free software: you can redistribute it and/or modify
36226
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 12507
diff changeset
11 # it under the terms of the GNU General Public License as published by
94828
3a4bc081639c Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79748
diff changeset
12 # the Free Software Foundation, either version 3 of the License, or
3a4bc081639c Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79748
diff changeset
13 # (at your option) any later version.
3a4bc081639c Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79748
diff changeset
14
36226
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 12507
diff changeset
15 # GNU Emacs is distributed in the hope that it will be useful,
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 12507
diff changeset
16 # but WITHOUT ANY WARRANTY; without even the implied warranty of
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 12507
diff changeset
17 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 12507
diff changeset
18 # GNU General Public License for more details.
94828
3a4bc081639c Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79748
diff changeset
19
36226
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 12507
diff changeset
20 # You should have received a copy of the GNU General Public License
94828
3a4bc081639c Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79748
diff changeset
21 # along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
3a4bc081639c Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 79748
diff changeset
22
36226
c8fb06423da0 Add copyright notice.
Gerd Moellmann <gerd@gnu.org>
parents: 12507
diff changeset
23
2275
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
24 # Arguments which are detectably either RCS masters (with names ending in ,v)
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
25 # or Emacs version files (with names of the form foo.~<number>~) are ignored.
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
26 # For each file foo, the script looks for Emacs version files related to it.
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
27 # These files are checked in as deltas, oldest first, so that the contents of
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
28 # the file itself becomes the latest revision in the master.
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
29 #
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
30 # The first line of each file is used as its description text. The file itself
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
31 # is not deleted, as under VC with vc-keep-workfiles at its default of t, but
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
32 # all the version files are.
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
33 #
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 43223
diff changeset
34 # If an argument file is already version-controlled under RCS, any version
2275
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
35 # files are added to the list of deltas and deleted, and then the workfile
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
36 # is checked in again as the latest version. This is probably not quite
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
37 # what was wanted, and is the main reason VC doesn't simply call this to
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
38 # do checkins.
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
39 #
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
40 # This script is intended to be used to convert files with an old-Emacs-style
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
41 # version history for use with VC (the Emacs 19 version-control interface),
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
42 # which likes to use RCS as its back end. It was written by Paul Eggert
2689
dcbc46826515 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2275
diff changeset
43 # and revised/documented for use with VC by Eric S. Raymond, Mar 19 1993.
2275
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
44
2273
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
45 case $# in
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
46 0)
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
47 echo "rcs-checkin: usage: rcs-checkin file ..."
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
48 echo "rcs-checkin: function: checks file.~*~ and file into a new RCS file"
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
49 echo "rcs-checkin: function: uses the file's first line for the description"
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
50 esac
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
51
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
52 # expr pattern to extract owner from ls -l output
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
53 ls_owner_pattern='[^ ][^ ]* *[^ ][^ ]* *\([^ ][^ ]*\)'
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
54
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
55 for file
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
56 do
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
57 # Make it easier to say `rcs-checkin *'
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
58 # by ignoring file names that already contain `~', or end in `,v'.
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
59 case $file in
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
60 *~* | *,v) continue
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
61 esac
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
62 # Ignore non-files too.
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
63 test -f "$file" || continue
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
64
4343
aa19e3673b9f Don't check whether file is readable until we have decided not to ignore it.
Paul Eggert <eggert@twinsun.com>
parents: 2689
diff changeset
65 # Check that file is readable.
9611
9e5812a795da Use test -r instead of < to check readability, to avoid syntax error.
David J. MacKenzie <djm@gnu.org>
parents: 4343
diff changeset
66 test -r "$file" || exit
4343
aa19e3673b9f Don't check whether file is readable until we have decided not to ignore it.
Paul Eggert <eggert@twinsun.com>
parents: 2689
diff changeset
67
2273
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
68 # If the RCS file does not already exist,
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
69 # initialize it with a description from $file's first line.
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
70 rlog -R "$file" >/dev/null 2>&1 ||
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
71 rcs -i -q -t-"`sed 1q $file`" "$file" || exit
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
72
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
73 # Get list of old files.
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
74 oldfiles=`
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
75 ls $file.~[0-9]*~ 2>/dev/null |
43221
fadb49348c98 Use `sort -k 2', not `sort +1', as POSIX 1003.1-2001
Paul Eggert <eggert@twinsun.com>
parents: 36226
diff changeset
76 sort -t~ -n -k 2
2273
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
77 `
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
78
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
79 # Check that they are properly sorted by date.
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
80 case $oldfiles in
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
81 ?*)
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
82 oldfiles_by_date=`ls -rt $file $oldfiles`
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
83 test " $oldfiles
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
84 $file" = " $oldfiles_by_date" || {
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
85 echo >&2 "rcs-checkin: skipping $file, because its mod times are out of order.
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
86
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
87 Sorted by mod time:
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
88 $oldfiles_by_date
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
89
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
90 Sorted by name:
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
91 $oldfiles
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
92 $file"
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
93 continue
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
94 }
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
95 esac
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
96
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
97 echo >&2 rcs-checkin: checking in: $oldfiles $file
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
98
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
99 # Save $file as $file.~-~ temporarily.
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
100 mv "$file" "$file.~-~" || exit
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
101
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
102 # Rename each old file to $file, and check it in.
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
103 for oldfile in $oldfiles
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
104 do
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
105 mv "$oldfile" "$file" || exit
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
106 ls_l=`ls -l "$file"` || exit
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
107 owner=-w`expr " $ls_l" : " $ls_owner_pattern"` || owner=
2275
c70f9af7c66a Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2273
diff changeset
108 echo "Formerly ${oldfile}" | ci -d -l -q $owner "$file" || exit
2273
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
109 done
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
110
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
111 # Bring $file back from $file.~-~, and check it in.
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
112 mv "$file.~-~" "$file" || exit
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
113 ls_l=`ls -l "$file"` || exit
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
114 owner=-w`expr " $ls_l" : " $ls_owner_pattern"` || owner=
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
115 ci -d -q -u $owner -m"entered into RCS" "$file" || exit
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
116 done
576b71164157 Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
117
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
118 # arch-tag: 89c86949-ef04-4380-838b-bc1444dcb074