summaryrefslogtreecommitdiff
path: root/usr.bin/cvs/update.c
AgeCommit message (Collapse)Author
2009-03-24shuffle code a bit so FILE_REMOVE_ENTRY also callsJoris Vink
cvs_checkout_file() with CO_REMOVE set otherwise our server would never inform the client the entry should be removed.
2009-03-23LP_NOTICE should be LP_ERR when showing directory messages.Joris Vink
2009-03-21be smarter when checking if a directory is empty by looking atJoris Vink
CVS/Entries early on in cvs_update_leavedir()
2009-02-21use FILE_ON_DISK flags when we need to verify if a fileJoris Vink
exists in the working copy or not instead of checking fd being -1 since this can differ in server or local mode.
2008-06-28if the user supplied -A only checkout files again if a sticky tagJoris Vink
was in fact set, instead of ALWAYS checking them out no matter what. spotted & diff tested by naddy@
2008-06-19If checkout/update -p is requested with a specific tag for a file whichTobias Stoeckmann
doesn't contain this tag, don't print head. ok joris
2008-06-14Conforming to RCS specification, it is possible but unlikely to encounterTobias Stoeckmann
an RCS file which has no head revision set. Some commands actually can work with them (log, status) so support these files. Fixes A LOT of possible segmentation faults. ok joris
2008-06-14Added support for sticky date set in CVS/Tag and CVS/Entries per directory.Tobias Stoeckmann
ok joris
2008-06-14don't always re-open the same CVS/Entries file, instead keep theJoris Vink
last opened CVS/Entries around to operate on and close it whenever we switch directory. gives us a small performance boost, obviously. while doing this, switch the way we write revisions to disk by using fwrite(3) so stuff can get written to disk in chunks instead of writing everything line by line, another win. with help from otto@ ok tobias@
2008-06-12completely kill the need for TMP_DIR when running checkout,Joris Vink
which gives us better performance among other things. this is however disabled in a few cases: 1) whenever you run checkout over an existing tree (which acts as update) 2) whenever you specify -d or a module alias we're planning on enabling this behaviour for case 2 in the future. anoncvs sysadmins now love us even more. ok tobias@
2008-06-11cleanup our junk when in server mode and running as checkout everyJoris Vink
time we descend into another directory, leaves even less crap in /tmp while running.
2008-06-09unused varJoris Vink
2008-06-09Properly handle merged files and conflicts which may arrise while merge.Tobias Stoeckmann
Instead of ignoring all files which contain possible conflict markers, only watch out for files which have actually been merged. With input by and ok joris.
2008-06-08Don't check a file for conflict markers if it has no CVS/Entries entry.Tobias Stoeckmann
ok joris
2008-05-30Keyword expansion must not be set if no RCS file is available, for exampleTobias Stoeckmann
a newly added but not yet committed file. Fixes segfault. ok joris
2008-05-23Properly pass the directory tag of parent directory into new subdirectories.Tobias Stoeckmann
Spotted by and ok joris.
2008-05-22Wrong function names in fatal messages fixed.Tobias Stoeckmann
2008-05-22expension -> expansionTobias Stoeckmann
ok joris, xsa (quite some time ago)
2008-03-09locate the first occurance of ':' in the given -j argumentsJoris Vink
instead of the last one, otherwise we cannot properly separate the tag from the given date (if any).
2008-03-09simplify logic in cvs_update_leavedir()Joris Vink
2008-03-09when in server mode, be sure the client picks up any new directoriesJoris Vink
if they are available if we run with -d, however do not send the stuff when running a checkout so empty directories do not even appear in our working copy, saves us the whole pruning trouble at the end with co.
2008-03-09While allocation memory, make sure that file sizes are smaller than SIZE_MAX.Tobias Stoeckmann
ok joris
2008-03-08do not log successfull merges in CVSROOT/history when joining.Joris Vink
2008-03-08better -j supportJoris Vink
2008-03-08add checkout/update -j support.Joris Vink
still has some rough edges.
2008-03-02Print the right synopsis for commands on error (especially if commandsTobias Stoeckmann
share the same function: (r)tag, etc.). ok joris
2008-03-01use file_rcsrev in update_clear_conflict() - this wayJoris Vink
we will always pick up the correct revision.
2008-02-28RCS files can have a default expansion mode, keep this in mind forTobias Stoeckmann
update -A and -k. spotted by and ok joris
2008-02-11Cleanup buf implementation:Tobias Stoeckmann
* Don't check for NULL on buffer creation, because it calls fatal() when something's wrong. * All buffers are supposed to expand if there is no space left in them, so zap flags as well. * Remove code that is now dead. OK joris@ > Inspired by a diff from Igor Zinovik about unchecked return value.
2008-02-10properly initialize cvs_specified_date so we dont end up withJoris Vink
random stuff going on
2008-02-10parse any date tags set in CVS/Tag or CVS/Entries properly, and useJoris Vink
them for commands; with tobias@
2008-02-09Introduce cvs_ent_line_str() - formats CVS/Entries lines.Xavier Santolaria
OK tobias@.
2008-02-09in cvs_update_enterdir() write the CVS/Tag file if theJoris Vink
cvs_specified_date is != 0 as well;
2008-02-09Support for checkout -D extended:Tobias Stoeckmann
Properly write CVS/Tag and CVS/Entries on various combinations of -r and -D. OK joris@
2008-02-09missing breakJoris Vink
spotted by tobias@
2008-02-09remote improvements:Joris Vink
- make sure the client creates the correct CVS/Repository when running checkout if there was no -d targetdir specified. - allow -D to work remotely for both checkout and update.
2008-02-09Get in proper support for checkout/update -A when it comes to keywordTobias Stoeckmann
expansion options. OK joris@
2008-02-09lets do -D for update as wellJoris Vink
2008-02-08do not override a specified (-r) tag with the tag in the Entries fileJoris Vink
2008-02-06Sticky tags must have a 'T' in front of them in CVS/Entries.Tobias Stoeckmann
OK joris@
2008-02-04Stripped off 'nb', which was (or was supposed to be) used to distinguishTobias Stoeckmann
between a named branch and a revision number supplied by -r. This can be done easier in cvs_write_tagfile directly. OK joris@
2008-02-04Added -k flag support for all commands which support it.Tobias Stoeckmann
OK joris@
2008-02-03cvs_update_leavedir is only useful if dirs have to be pruned.Tobias Stoeckmann
OK joris@
2008-01-31During checkout -p don't print files which are in Attic if they are notTobias Stoeckmann
requested with -r. OK joris@
2008-01-31Replaced the unused cvs_command variable cmd_req with cmd_flags, which statesTobias Stoeckmann
if the current command is supposed to use a working directory or if it is a repository-only command (as of now checkout -p, rtag, rlog). Makes the code simpler, easier to read and automagically fixes some issues we encountered with these commands (for example if a working directory exists, or "." operations are performed). OK joris@, niallo@
2008-01-28Properly handle -R -- although it is default, it may be overwritten mit -lTobias Stoeckmann
in front of it. OK joris@, xsa@ > Diff from Igor Zinovik
2008-01-21Fixed export to be fully functional and compliant to GNU cvs in local andTobias Stoeckmann
remote setups. OK xsa@
2008-01-10another strcspn() roundTobias Stoeckmann
2007-09-23make sure when running update -r on existing files to overwriteJoris Vink
the sticky directory tag with it. since -r gets priority.
2007-09-23pass FILE_HAS_FLAG towards the update code so it can identifyJoris Vink
if a given tag is present in the RCSfile or not.