Age | Commit message (Collapse) | Author |
|
do not skip files or run over them twice.
also fixes -l and -r for checkout/update when a file in
Attic exists with that tag that in HEAD is a directory
in the normal repository like gnu/usr.bin/gcc/INSTALL.
as a bonus, we do not run fstat() twice per file or dir
anymore...
spotted by deraadt@
|
|
so we can benefit from faster lookup times while recursing.
|
|
- mark a file as being inside the Attic/
- mark a file as existing in the working copy
(both in local and remote mode)
this way we no longer will need to check if cf->fd == -1 and
think about wether or not we are in local or remote mode.
|
|
value for user_supplied. allow us to carry any important file flags
over to cvs_file's later on.
makes it easier for what i have coming.
|
|
it again in that function.
|
|
in the callbacks to verify if this file was specified on the command line.
|
|
actually means and is used for.
|
|
if a given tag is present in the RCSfile or not.
|
|
|
|
cvs co -rOPENBSD_3_0 works now.
along the way, simplify and rationalise code and fix a few nits.
ok joris@ xsa@ ray@
|
|
|
|
|
|
in the old school days and serves no purpose what so ever now.
otto@ mentioned this to me a while ago
|
|
copy the file in the current working directory to CVS/Base/
ok ray@ joris@.
|
|
first bits for the edit command for now.
definitly still more work to do for optimization...
|
|
- compare the <file> in working dir and the one in CVS/Base/<file>
for the unedit command.
hints otto@, input and ok ray@ niallo@.
|
|
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
|
|
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.
|
|
|
|
that never got used in the first place;
|
|
|
|
- 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@
|
|
diff is from joris@, committing on his behalf because his net connection
is very dodgy right now.
|
|
ok xsa@
|
|
|
|
|
|
a mess and not clean.
this code is much cleaner, faster, and uses less memory overall.
tested by xsa@, brad@, Michael Knudsen, and myself.
okay xsa@
|
|
CVS_FILE_NAME macro. This macro used to be nifty because of all
the referencing for the names, but since we don't do that anymore and
use cf_name directly... byebye CVS_FILE_NAME()
okay xsa@
|
|
usefull for some commands.
ok xsa@
|
|
|
|
in my tree since c2k5
ok xsa@
|
|
fields to hook local versions of the commands. This needs to go in
before it gets any bigger
ok joris
|
|
the in-memory filelist. cuts down on execution time for larger trees.
"put it in!" jfb@
|
|
to only load directories and skip regular files.
tested and ok xsa@
|
|
- fix our behaviour regarding directories or files in a different
directory than we currently are as arguments to commands, this
allows stuff like "cvs status sys/arch/i386/Makefile" to work.
- when parsing a pathname only load the needed nodes of the path
instead of loading *everything* in memory.
the next step in this is to merge the collection and callback
execution together.
ok jfb@, xsa@
|
|
both files and directories. We can now keep the revision number for
regular files, and don't need to fetch the appropriate entry in the
command callbacks. This saves a huge amount of parsing on Entries
files.
ok joris@
|
|
ok joris@
|
|
ok jfb@
|
|
is a directory and has no root set
|
|
have been lost but have a valid entry.
|
|
|
|
This will be used in the commit code.
|
|
a full path to each file we load, and cache file names so we can have
multiple references to a single name. This saves a lot of memory on large
trees such as /usr/src, especially on 'Makefile', 'README' and such.
|
|
and fix 2 calls to cvs_splitpath()
* unbreak cvs_file_find()
|
|
|
|
information and keep it in the file structure
|
|
|
|
on directories with huge sets of files, and fix a bug while we're at it.
When sorting failed, the files that had been removed from the list didn't
get pushed back in it.
|