Age | Commit message (Collapse) | Author |
|
|
|
Previously, files in the 'Attic/' were linked into our filelist as being
'Attic/filename,v' this caused unneeded stress on certain functions
like cvs_file_classify() who had to do pointer voodoo to split out
the 'Attic/' part and do other very weird stuff to normalize the pathname
of these files.
Instead, we handle these files early in the start when we
build the fileslist in cvs_repository_getdir(). When encountering
the 'Attic/' directory, we recurse in it if required but instead of
using the 'Attic/' directory component as our base directory we stick
with the directory name where 'Attic/' resides in, resulting in the
correct filename while maintaining the correct RCSpath for the file.
This made the following things a lot easier:
(and in most cases actually fixed the below points)
- status with files in Attic/.
- checking out HEAD repositories with files in Attic/.
- checking out repositories with -rTAG.
- updating with -rTAG.
and as an added bonus the following now also works:
- correctly creating CVS/Tag in both local and remote mode thus
allowing update/status/and more to work correctly with the tagged tree.
(thanks to the correct handling of -rTAG cases).
- resetting tags with opencvs -A properly works too now.
This is a major step forward into the usability
of OpenCVS when it comes to maintaining multiple tagged trees, the next
logical step would be to fix commiting to branches.
enjoy you -stable cowards.
tested by myself, xsa, niallo and ckuethe
thanks guys!
|
|
Simplifies further size tweaks if needed.
OK niallo@ ray@.
|
|
only required in server mode due to the fact we need to let the client
now its been removed, found this the hard way.
|
|
handle files that have been removed from the repository
correctly, which resulted in them still being in the working copy
after doing an update.
noticed and diff tested by ckuethe@.
|
|
to CVSROOT/history but cannot parse it yet with the 'history' command.
"Commit it." ray@
|
|
cvs co -rOPENBSD_3_0 works now.
along the way, simplify and rationalise code and fix a few nits.
ok joris@ xsa@ ray@
|
|
OK niallo@
|
|
|
|
functionality w/ xsnprintf(); Initial diff started by thib@.
OK thib@ joris@.
|
|
getdirentries(2).
ok otto@
|
|
repository, mark it as to be skipped so we do not try to
lock it on update and miserably fail... OK joris@.
|
|
in the old school days and serves no purpose what so ever now.
otto@ mentioned this to me a while ago
|
|
|
|
when running update -A, instead merge in the changes.
'kay xsa@
|
|
tested by many, thanks.
|
|
|
|
directories in cvs_update_leavedir().
fixes the "Device busy" error some people have been seeing.
problem initially reported by Frank Denis.
ok xsa@
|
|
|
|
with this the last real dependency to actually be able to use opencvs
in a remote setup has been added.
based upon an initial diff from xsa@
'kay niallo@
|
|
no longer be used, ever.
|
|
in some places and much
reduced memory usage. note that only checkout has been fully converted to use the new high-performance
functions. other codepaths (e.g. update) still use the old method which is provided for backwards
compatibility. we can convert the remaining slow bits over to the new api piece-by-piece.
"commit this, now" joris@
brad@ tested, too.
|
|
all files were ascii,
which broke things in real-world usage. now a checkout of src should work, albeit using lots of
memory and cpu. fixing this is the next step.
testing by many.
ok & some input joris@
|
|
do not connect to the remote server until we are sure all the options
passed to the commands are valid.
noticed by xsa@
|
|
|
|
although i advise against using it on real development trees for now.
only a few commands work right so far:
- commit
- diff
- status
- log
- update (partially working)
if you feel like testing remote and run into bugs feel free to
contact me, and please include a full trace (-t).
|
|
|
|
- do not try to attempt to check for conflict markers when the file is not on disk.
found by and okay reyk@
|
|
suggested by deraadt@, ok joris@
|
|
ok joris@
|
|
we let the commands pass the correct function.
all in preparation for remote.
|
|
|
|
|
|
except it takes a decriptor as argument instead of a path.
modified cvs_buf_load() to open the descriptor then pass
it to cvs_buf_load_fd().
change all the calls to cvs_buf_load() that have a descriptor
open for the path to cvs_buf_load_fd() to prevent races.
|
|
-D allows you to update a file to matching a specified date:
opencvs up -D "1 hour ago" foobar will take the first matching
revision that was commited 1 hour ago.
|
|
hacking on the plane from toronto to barbados.
i will probably hack some more since im stuck in barbados
for 12 lovely hours over night cause the carribean airlines dont understand
the meaning over 'more than one flight a day'.
|
|
export does exactly the same as checkout except it does
not create any administrative (CVS/) directories.
|
|
for each cvs_file struct, this will help us with sticky tags,
commiting to branches and importing into existing repositories.
|
|
- default to CVS_FILE when something is totally unknown
- cvs_get_repository_path() now returns the full repository path for
the given argument.
- cvs_get_repository_name() returns the contents of CVS/Repository
to the caller.
- allow command callbacks to specify if our recursion code needs
to skip the directory or not.
- when checking for a admin directory, make sure it is in fact
a directory. if it is not we dont want to recurse inside.
|
|
if the commands want to output certain stuff themselfs
|
|
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.
|
|
|
|
if you specify -d when running update new directories will be build,
otherwise they will be skipped.
|
|
about any new files or directories inside the repository
|
|
specified certain commands will not recurse into directories.
at the same time introduce a method of specifying wether or not
a command should look in the repository for files.
|
|
|
|
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.
|
|
no binary change; ok ray
|
|
|
|
|