Age | Commit message (Collapse) | Author |
|
|
|
- rework rcs_getrev() to correctly support branches
- rework rcs_translate_tag() to correctly translate given symbols or
branches into their matching revisions
- rework rcs_rev_add() to correctly update its 'next' pointers
and insert the new revision in the correct place on the list.
- rework rcs_head_get() to return the latest revision on the default
branch if it has been set or the normal HEAD revision otherwise.
- no longer access the rf_head member of the RCSFILE struct manually,
use the rcs_head_get() function which correctly returns the HEAD
revision, there might be a default branch that has to be used.
- for now, when commiting a new revision reset the default branch.
|
|
allows us to completely use branches for diffing, logging,
updating, etc..
more branches support coming up!
|
|
in the normal repository, and a way to identify an RCS file in
the Attic in the RCSFILE struct.
will come in handy later on.
|
|
revision or symbol given to us on the command line into
the matching revision in the RCS file (if any);
|
|
if an RCSFILE is dead, will come in usefull later in commands.
|
|
has been modified by yourself and there is a newer revision
we try and merge them together.
if the merge fails and has conflicts it will mark them inside
the file, you will need to resolve these by hand first before
you will be able to commit your modified file.
works transparent with gnu cvs, as it is suppose to.
|
|
this for the past 2 weeks now and it should go in at
the start of the hackathon so others can help out.
this code is a lot safer, smarter, faster and best of
all it is actually doing what it is suppose to do!
basic checkout, update, status, diff and commit are
working in local mode only.
there is no support for any remote setups now.
|
|
adding a really nasty hack to make some upcoming rlog fixes from joris work.
ok joris@
|
|
-o allows users to delete revisions in the specified RCS files.
example:
rcs -o1.4:1.6 foo deletes revisions 1.4 - 1.6
rcs -o1.3 foo deletes revision 1.3
joint work with niallo@
okay niallo@
|
|
when he yanked the code out of rcs.c and placed it in rcstime.c.
struct tm ltb, *tb;
tb = <b;
return (tb);
isn't really the most perfect idiom to return a value to the caller, now is it?
as a bonus -z for rlog now works too.
okay niallo@
|
|
|
|
check them out. commit is not working yet, but will be soon.
tested by myself and ray@
okay ray@
|
|
From Pierre-Yves Ritschard.
OK niallo@
|
|
- int rcsnum_cpy() -> void rcsnum_cpy().
- Check for overflow in rcsnum_cpy().
OK niallo@
|
|
permissions from rcs file and initial checkin will inherit permissions from
working file.
problem spotted by uwe@
ok ray@ xsa@
|
|
OK ray@.
|
|
OK niallo@.
|
|
Pointed out by Theo.
Okay xsa@.
|
|
From Pierre-Yves Ritschard.
OK xsa@
|
|
OK joris@.
|
|
|
|
unconditionally doing keyword expansion, even when this wasn't what we
wanted e.g. in checkout_rev() and cvs_checkout_rev(). so:
- change semantics of rcs_getrev() to not do keyword expansion
- add an rcs.c api function rcs_kwexp_buf() which does this
- change both checkout_rev() and cvs_checkout_rev() to use this function.
eyeballed by xsa, joris and Ray Lai
|
|
allows access from outside rcs.c and will be needed for upcoming features
in ci(1).
ok joris@ xsa@
|
|
|
|
spotted by joris@
|
|
need. this can save us much work, particularly with very large rcs files.
first of a few important performance improvements.
ok joris@
|
|
it was only done partially and as a bonus, completely wrong.
seriously guys what was up with that?
|
|
If you 'vi file.c' and change stuff, then 'make depend && make' you'll
have a file.o file most definately more recent than the latest committed
version of file.c.
Then, if you rm file.c, and cvs update file.c, if 'file.c' is set to the
timestamp of the last committed version, a subsequent 'make' will not
rebuild the .o file.
to fix this we simply use the current timestamp when updating files.
thanks todd@!
|
|
- checkout in local mode (example: /cvs)
- update in local and server mode (example: /cvs and user@host:/cvs)
- import in local and server mode (example: /cvs and user@host:/cvs)
what remains to be done:
- not all options are supported yet, and update cannot pick up newly
added files yet. these things are pending and will be commited
real soon.
- checkout only works locally right now.
- fix rcs parsing code so that we don't fucking hog 100% cpu
on really BIG BIG BIG ass trees.
mainly tested by pedro@ and myself, thanks a lot pedro!
"go for it" niallo@
|
|
OK joris@ niallo@.
|
|
- instead of using lots of individual flag variables, use a single int and
bitwise operations on it. while this saves memory, really it saves code
space and reduces complexity. checkout_rev() and checkout_state() in
particular benefit from these changes since their parameters where growing
really long.
- implement `-s' option in co
- implement `-M' option in ci
"I like this, go for it" joris@
|
|
- use these two new functions to implement -s<state> option in ci
ok joris@
|
|
"go for it" niallo@
|
|
`ci -wusername'.
ok joris@
|
|
of a revision to a specific value;
ok niallo@
|
|
ok niallo@
|
|
combined effort with joris.
ok joris@
|
|
ok xsa@, jfb@
|
|
|
|
vice versa, and fix RCSNUM_ISBRANCH()
|
|
|
|
the revision's timestamp (-1 is equivalent to using the current time)
|
|
some cleanup
|
|
to determine the appropriate comment leader for a file
|
|
in errno, fix cvs_errstr() to return the appropriate string, and
sprinkle some error setting where appropriate
|
|
an abort message if the tag is invalid. also, match gnu cvs behaviour
with regards to command usage output on usage errors.
ok joris
|
|
sprinkle some in the other symbol functions
|
|
|
|
data
|