Mercurial > emacs
annotate lib-src/rcs-checkin @ 6748:b1cde622fa65
(read_process_output): If buffer changes, record that fact.
author | Karl Heuer <kwzh@gnu.org> |
---|---|
date | Fri, 08 Apr 1994 05:58:12 +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 |