Mercurial > emacs
annotate lib-src/rcs-checkin @ 4824:eaf67474339b
(Fminibuffer_complete_word): GCPRO1 `completion' during calls to
Ftry_completion.
(read_minibuf): Rewrite change of Sep 14. Save the return value on
the history list provided in the form that the value is returned, iff
the value is not equal to the front of the history list.
(Fread_no_blanks_input): Change DEFUN to allow 2nd arg to be optional.
The code was already written correctly.
author | Brian Fox <bfox@gnu.org> |
---|---|
date | Tue, 05 Oct 1993 01:46:45 +0000 |
parents | aa19e3673b9f |
children | 9e5812a795da |
rev | line source |
---|---|
2273 | 1 #!/bin/sh |
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. |
c70f9af7c66a
Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2273
diff
changeset
|
4 # |
c70f9af7c66a
Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2273
diff
changeset
|
5 # 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
|
6 # 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
|
7 # 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
|
8 # 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
|
9 # 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
|
10 # |
c70f9af7c66a
Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2273
diff
changeset
|
11 # 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
|
12 # 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
|
13 # 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
|
14 # |
c70f9af7c66a
Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2273
diff
changeset
|
15 # If an argument file is already version-controlled under RCS, any version |
c70f9af7c66a
Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2273
diff
changeset
|
16 # 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
|
17 # 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
|
18 # 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
|
19 # do checkins. |
c70f9af7c66a
Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2273
diff
changeset
|
20 # |
c70f9af7c66a
Added documentation, made the change comment for old versions more
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2273
diff
changeset
|
21 # 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
|
22 # 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
|
23 # 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
|
24 # 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
|
25 |
2273 | 26 case $# in |
27 0) | |
28 echo "rcs-checkin: usage: rcs-checkin file ..." | |
29 echo "rcs-checkin: function: checks file.~*~ and file into a new RCS file" | |
30 echo "rcs-checkin: function: uses the file's first line for the description" | |
31 esac | |
32 | |
33 # expr pattern to extract owner from ls -l output | |
34 ls_owner_pattern='[^ ][^ ]* *[^ ][^ ]* *\([^ ][^ ]*\)' | |
35 | |
36 for file | |
37 do | |
38 # Make it easier to say `rcs-checkin *' | |
39 # by ignoring file names that already contain `~', or end in `,v'. | |
40 case $file in | |
41 *~* | *,v) continue | |
42 esac | |
43 # Ignore non-files too. | |
44 test -f "$file" || continue | |
45 | |
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
|
46 # Check that file is readable. |
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
|
47 <$file || exit |
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
|
48 |
2273 | 49 # If the RCS file does not already exist, |
50 # initialize it with a description from $file's first line. | |
51 rlog -R "$file" >/dev/null 2>&1 || | |
52 rcs -i -q -t-"`sed 1q $file`" "$file" || exit | |
53 | |
54 # Get list of old files. | |
55 oldfiles=` | |
56 ls $file.~[0-9]*~ 2>/dev/null | | |
57 sort -t~ -n +1 | |
58 ` | |
59 | |
60 # Check that they are properly sorted by date. | |
61 case $oldfiles in | |
62 ?*) | |
63 oldfiles_by_date=`ls -rt $file $oldfiles` | |
64 test " $oldfiles | |
65 $file" = " $oldfiles_by_date" || { | |
66 echo >&2 "rcs-checkin: skipping $file, because its mod times are out of order. | |
67 | |
68 Sorted by mod time: | |
69 $oldfiles_by_date | |
70 | |
71 Sorted by name: | |
72 $oldfiles | |
73 $file" | |
74 continue | |
75 } | |
76 esac | |
77 | |
78 echo >&2 rcs-checkin: checking in: $oldfiles $file | |
79 | |
80 # Save $file as $file.~-~ temporarily. | |
81 mv "$file" "$file.~-~" || exit | |
82 | |
83 # Rename each old file to $file, and check it in. | |
84 for oldfile in $oldfiles | |
85 do | |
86 mv "$oldfile" "$file" || exit | |
87 ls_l=`ls -l "$file"` || exit | |
88 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
|
89 echo "Formerly ${oldfile}" | ci -d -l -q $owner "$file" || exit |
2273 | 90 done |
91 | |
92 # Bring $file back from $file.~-~, and check it in. | |
93 mv "$file.~-~" "$file" || exit | |
94 ls_l=`ls -l "$file"` || exit | |
95 owner=-w`expr " $ls_l" : " $ls_owner_pattern"` || owner= | |
96 ci -d -q -u $owner -m"entered into RCS" "$file" || exit | |
97 done | |
98 |