ftp.nice.ch/pub/next/unix/developer/cvs.950905.s.tar.gz#/cvs-1.5.1/src

ChangeLog
 
ChangeLog.fsf
 
Makefile.in
 
NOTES
 
README-rm-add
 
add.c
[View add.c] 
admin.c
[View admin.c] 
checkin.c
[View checkin.c] 
checkout.c
[View checkout.c] 
classify.c
[View classify.c] 
client.c
[View client.c] 
client.h
[View client.h] 
commit.c
[View commit.c] 
create_adm.c
[View create_adm.c] 
cvs.h
[View cvs.h] 
cvsbug.sh
[View cvsbug.sh] 
cvsrc.c
[View cvsrc.c] 
diff.c
[View diff.c] 
entries.c
[View entries.c] 
filesubr.c
[View filesubr.c] 
find_names.c
[View find_names.c] 
hash.c
[View hash.c] 
hash.h
[View hash.h] 
history.c
[View history.c] 
ignore.c
[View ignore.c] 
import.c
[View import.c] 
lock.c
[View lock.c] 
log.c
[View log.c] 
logmsg.c
[View logmsg.c] 
main.c
[View main.c] 
mkmodules.c
[View mkmodules.c] 
modules.c
[View modules.c] 
myndbm.c
[View myndbm.c] 
myndbm.h
[View myndbm.h] 
no_diff.c
[View no_diff.c] 
options.h.in
 
parseinfo.c
[View parseinfo.c] 
patch.c
[View patch.c] 
patchlevel.h
[View patchlevel.h] 
rcs.c
[View rcs.c] 
rcs.h
[View rcs.h] 
rcscmds.c
[View rcscmds.c] 
recurse.c
[View recurse.c] 
release.c
[View release.c] 
remove.c
[View remove.c] 
repos.c
[View repos.c] 
root.c
[View root.c] 
rtag.c
[View rtag.c] 
run.c
[View run.c] 
sanity.sh
[View sanity.sh] 
server.c
[View server.c] 
server.h
[View server.h] 
status.c
[View status.c] 
subr.c
[View subr.c] 
tag.c
[View tag.c] 
update.c
[View update.c] 
update.h
[View update.h] 
vers_ts.c
[View vers_ts.c] 
version.c
[View version.c] 
wrapper.c
[View wrapper.c] 

README-rm-add

WHAT THE "DEATH SUPPORT" FEATURES DO:

(this really should be in the main manual, but noone has gotten around
to updating it).

CVS with death support can record when a file is active, or alive, and
when it is removed, or dead.  With this facility you can record the
history of a file, including the fact that at some point in its life
the file was removed and then later added.

First, the following now works as expected:

	touch foo
	cvs add foo ; cvs ci -m "added" foo
	rm foo
	cvs rm foo ; cvs ci -m "removed" foo
	touch foo
	cvs add foo ; cvs ci -m "resurrected" foo

Second, files can now be added or removed in a branch and later merged
into the trunk.

	cvs update -A
	touch a b c
	cvs add a b c ; cvs ci -m "added" a b c
	cvs tag -b branchtag
	cvs update -r branchtag
	touch d ; cvs add d
	rm a ; cvs rm a
	cvs ci -m "added d, removed a"
	cvs update -A
	cvs update -jbranchtag

Added and removed files may also be merged between branches.

Files removed in the trunk may be merged into branches.

Files added on the trunk are a special case.  They cannot be merged
into a branch.  Instead, simply branch the file by hand.

I also extended the "cvs update -j" semantic slightly.  Like before,
if you use two -j options, the changes made between the first and the
second will be merged into your working files.  This has not changed.

If you use only one -j option, it is used as the second -j option.
The first is assumed to be the greatest common ancestor revision
between the revision specified by the -j and the BASE revision of your
working file.

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.