02:01:08: -> Client trace started, level=3. 02:01:08: -> Tracelevel set to 3. PID is 4020 02:01:08: -> Session ID is fb44e3a35a42ca3 02:01:08: -> Session time is Thu Aug 4 06:01:08 2011 02:01:08: -> Client was compiled Jul 21 2011 06:55:44 02:01:08: -> Client was compiled with MSVC C/C++ 1310 02:01:08: -> Client build platform is microsoft-windows-x86 02:01:08: -> Build version is CVSNT 2.8.01 (Soolin) Build 4218 02:01:08: -> User name is Scott 02:01:08: -> Client running on "Windows 7 Professional (Build 7600) [6.1.7600]" 02:01:08: -> /3GB is not enabled, highest user address is 7ffeffff 02:01:08: -> Client has 51 percent of memory in use. 02:01:08: -> Client has 1416760 total Kbytes of physical memory*. 02:01:08: -> Client has 687320 free Kbytes of physical memory*. 02:01:08: -> Client has 1416760 total Kbytes of physical memory. 02:01:08: -> Client has 687320 free Kbytes of physical memory. 02:01:08: -> Client has 2833520 total Kbytes of paging file. 02:01:08: -> Client has 1679120 free Kbytes of paging file. 02:01:08: -> Client has 2097024 total Kbytes of virtual memory. 02:01:08: -> Client has 2035232 free Kbytes of virtual memory. 02:01:08: -> Client has 0 free Kbytes of extended memory. 02:01:08: -> Client Hardware information: 02:01:08: -> Number of processors: 1 02:01:08: -> Processor type: 586 02:01:08: -> processor architecture: x32 02:01:08: -> processor 386/486 model: 10752 step: 7 02:01:08: -> Free space in C:\Users\Scott\AppData\Local\Temp 1526312960 02:01:08: -> Total space in C:\Users\Scott\AppData\Local\Temp 4188008448 02:01:08: -> Total Free space in C:\Users\Scott\AppData\Local\Temp 1526312960 02:01:08: -> Loading protocol ssh as ssh.dll 02:01:08: -> CLibraryAccess::Load loading C:\PROGRA~1\CVSSUI~1\CVSNT/protocols/ssh.dll 02:01:08: -> main loop with CVSROOT=:ssh:abarrett@mail.march-hare.com:/cvs 02:01:08: -> main - about to start the server yes 02:01:08: -> start_server(verify_only=0) 02:01:08: -> client start - client_protocol->connect 02:01:08: -> Buffer size is 5120 02:01:08: -> client start - continue login. 02:01:08: -> client start - server started. 02:01:08: -> client start - send Valid-responses to server. 02:01:08: -> client start - send valid-requests to server. 02:01:08: -> client start - rootless_encryption. 02:01:08: -> Server codepage is UTF-8 02:01:08: -> Client codepage is CP1252 02:01:08: -> Server->Client codepage translation is active 02:01:08: -> Server version is CVSNT 2.8.02 (Cally) Build 3922 (RC 1) 02:01:08: -> Client version is CVSNT 2.8.01 (Soolin) Build 4218 02:01:08: -> Requesting server cvsignore 02:01:08: -> wrap_add(*.a -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.a" 02:01:08: -> wrap_add(*.ai -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.ai" 02:01:08: -> wrap_add(*.avi -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.avi" 02:01:08: -> wrap_add(*.bin -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.bin" 02:01:08: -> wrap_add(*.bmp -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.bmp" 02:01:08: -> wrap_add(*.bz2 -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.bz2" 02:01:08: -> wrap_add(*.cdd -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.cdd" 02:01:08: -> wrap_add(*.cdmz -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.cdmz" 02:01:08: -> wrap_add(*.chm -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.chm" 02:01:08: -> wrap_add(*.class -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.class" 02:01:08: -> wrap_add(*.cur -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.cur" 02:01:08: -> wrap_add(*.dll -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.dll" 02:01:08: -> wrap_add(*.doc -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.doc" 02:01:08: -> wrap_add(*.docx -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.docx" 02:01:08: -> wrap_add(*.docm -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.docm" 02:01:08: -> wrap_add(*.fp -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.fp" 02:01:08: -> wrap_add(*.pptx -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.pptx" 02:01:08: -> wrap_add(*.pptm -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.pptm" 02:01:08: -> wrap_add(*.xlsx -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.xlsx" 02:01:08: -> wrap_add(*.xlsm -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.xlsm" 02:01:08: -> wrap_add(*.odt -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.odt" 02:01:08: -> wrap_add(*.ods -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.ods" 02:01:08: -> wrap_add(*.odp -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.odp" 02:01:08: -> wrap_add(*.odb -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.odb" 02:01:08: -> wrap_add(*.odg -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.odg" 02:01:08: -> wrap_add(*.odf -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.odf" 02:01:08: -> wrap_add(*.mpp -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.mpp" 02:01:08: -> wrap_add(*.dvi -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.dvi" 02:01:08: -> wrap_add(*.exe -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.exe" 02:01:08: -> wrap_add(*.gif -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.gif" 02:01:08: -> wrap_add(*.gz -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.gz" 02:01:08: -> wrap_add(*.hqx -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.hqx" 02:01:08: -> wrap_add(*.ico -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.ico" 02:01:08: -> wrap_add(*.ilk -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.ilk" 02:01:08: -> wrap_add(*.indd -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.indd" 02:01:08: -> wrap_add(*.iso -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.iso" 02:01:08: -> wrap_add(*.lib -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.lib" 02:01:08: -> wrap_add(*.jar -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.jar" 02:01:08: -> wrap_add(*.jpg -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.jpg" 02:01:08: -> wrap_add(*.jpeg -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.jpeg" 02:01:08: -> wrap_add(*.lnk -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.lnk" 02:01:08: -> wrap_add(*.mpg -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.mpg" 02:01:08: -> wrap_add(*.mpeg -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.mpeg" 02:01:08: -> wrap_add(*.mov -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.mov" 02:01:08: -> wrap_add(*.mp3 -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.mp3" 02:01:08: -> wrap_add(*.ncb -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.ncb" 02:01:08: -> wrap_add(*.o -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.o" 02:01:08: -> wrap_add(*.ogg -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.ogg" 02:01:08: -> wrap_add(*.obj -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.obj" 02:01:08: -> wrap_add(*.pdb -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.pdb" 02:01:08: -> wrap_add(*.pdf -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.pdf" 02:01:08: -> wrap_add(*.png -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.png" 02:01:08: -> wrap_add(*.ppt -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.ppt" 02:01:08: -> wrap_add(*.psd -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.psd" 02:01:08: -> wrap_add(*.res -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.res" 02:01:08: -> wrap_add(*.rpm -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.rpm" 02:01:08: -> wrap_add(*.sit -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.sit" 02:01:08: -> wrap_add(*.so -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.so" 02:01:08: -> wrap_add(*.tar -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.tar" 02:01:08: -> wrap_add(*.tga -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.tga" 02:01:08: -> wrap_add(*.tgz -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.tgz" 02:01:08: -> wrap_add(*.tif -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.tif" 02:01:08: -> wrap_add(*.tiff -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.tiff" 02:01:08: -> wrap_add(*.ttf -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.ttf" 02:01:08: -> wrap_add(*.uir -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.uir" 02:01:08: -> wrap_add(*.wav -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.wav" 02:01:08: -> wrap_add(*.wmv -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.wmv" 02:01:08: -> wrap_add(*.xls -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.xls" 02:01:08: -> wrap_add(*.zip -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.zip" 02:01:08: -> wrap_add(*.Z -kb, 0, 0, 0, 0) 02:01:08: -> Call CFileAccess::mimetype: "*.Z" 02:01:08: -> Requesting server cvswrappers 02:01:08: -> The first item in the sorted list is "b" with wildcard "*.a" 02:01:08: -> Requesting server cvsrc (read-cvsrc2) 02:01:08: -> Parsing global cvsrc started 02:01:08: -> update -dP 02:01:08: -> Parsing global cvsrc finished 1 lines. 02:01:08: -> No local C:\Users\Scott/.cvsrc to parse 02:01:08: -> Server: call the requested function checkout 02:01:08: -> send_files (1) -- Send Max-dotdot if needed. 02:01:08: -> send_files (1) -- Send Max-dotdot if needed. 02:01:09: -> checkout args[0]="cvsnt/src/version.cpp" after client_handle_go_up() stuff 02:01:09: -> send_a_repository(,/cvs,) 02:01:09: -> send_repository(,/cvs,) 02:01:09: -> allocate adm_name * 80 is large enough for any of CVSADM_*. 02:01:09: -> * Send the directory name. 07:19:07: S -> server_main started 07:19:07: S -> run plugintools proc server 07:19:07: S -> run_trigger() 07:19:07: S -> trigger file not found. 07:19:07: S -> Checking admin file /usr/local/cvs/CVSROOT/admin for user abarrett 07:19:07: S -> Checking started in admin file /usr/local/cvs/CVSROOT/admin for user abarrett 07:19:07: S -> Checked admin file for user abarrett they are an admin. 07:19:07: S -> InitTrigger(info.la) 07:19:07: S -> InitTrigger(email.la) 07:19:07: S -> LoadTrigger(audit.la) 07:19:07: S -> Audit trigger not enabled. 07:19:07: S -> Couldn't load trigger audit.la 07:19:07: S -> InitTrigger(checkout.la) 07:19:07: S -> Checkout trigger not enabled. 07:19:07: S -> Couldn't load trigger checkout.la 07:19:07: S -> InitTrigger(make.la) 07:19:07: S -> Make trigger not enabled. 07:19:07: S -> Couldn't load trigger make.la 07:19:07: S -> LoadTrigger(bug.la) 07:19:07: S -> Defect Tracking trigger not enabled. 07:19:07: S -> Couldn't load trigger bug.la 07:19:07: S -> Call pre-loaded 'email.la' 07:19:07: S -> plugintools_proc() 07:19:07: S -> Call pre-loaded 'email.la' returned 0, total ret 0 07:19:07: S -> Call pre-loaded 'info.la' 07:19:07: S -> plugintools_proc() 07:19:07: S -> Call pre-loaded 'info.la' returned 0, total ret 0 07:19:07: S -> run_trigger returning 0 07:19:07: S -> run precommand proc server 07:19:07: S -> run_trigger() 07:19:07: S -> Call pre-loaded 'email.la' 07:19:07: S -> precommand_proc() 07:19:07: S -> Call pre-loaded 'email.la' returned 0, total ret 0 07:19:07: S -> Call pre-loaded 'info.la' 07:19:07: S -> precommand_proc() 07:19:07: S -> default_trigger: parse_info(CVSROOT/precommand,%r %c,%) 07:19:07: S -> default_trigger: no file 07:19:07: S -> Call pre-loaded 'info.la' returned 0, total ret 0 07:19:07: S -> run_trigger returning 0 07:19:07: S -> checkout - about to open_module 07:19:07: S -> open_module(/usr/local/cvs) 07:19:07: S -> checkout - about to do_module 1 times 07:19:07: S -> checkout - trying to determine if "cvsnt/src/version.cpp" could be a renamed file 07:19:07: S -> my current directory is /tmp/cvs-serv16946 07:19:07: S -> try and open_directory(/usr/local/cvs/cvsnt/src,".",CVSNT_2_8_01_3762,,0,NULL,164287284) 07:19:07: S -> open_directory(/usr/local/cvs/cvsnt/src,.,CVSNT_2_8_01_3762,,0,,0) 07:19:07: S -> open_directory() directory_stack_size increased by one to 1 07:19:07: S -> open_directory, (!remote) try and find a mapping file in this directory . 07:19:07: S -> RCS_parse(.directory_history,/usr/local/cvs/cvsnt/src) 07:19:07: S -> rcsbuf_open(/usr/local/cvs/cvsnt/src/.directory_history,v) 07:19:07: S -> Lock server command sent: Lock Read Full|/usr/local/cvs/cvsnt/src/.directory_history,v 07:19:07: S -> Lock server command received: 000 OK Lock granted (568092) 07:19:07: S -> do_lock_server: [07:19:07] obtained lock 568092 in /cvs/cvsnt/src/.directory_history,v 07:19:07: S -> do_lock_file: lock server returns 568092 07:19:07: S -> rcsbuf_open(/cvs/cvsnt/src/.directory_history,v) -- obtained a new lock 07:19:07: S -> rcsbuf_fill: expanded to 131072 07:19:07: S -> Opened mapping file /usr/local/cvs/cvsnt/src/.directory_history,v 07:19:07: S -> Reading mapping file /usr/local/cvs/cvsnt/src/.directory_history,v version= 07:19:07: S -> Mapping file cannot get rev using tag=CVSNT_2_8_01_3762 or date= 07:19:07: S -> No branch rev using version= or tag tag=CVSNT_2_8_01_3762 or date=, so try not forcing tag match. 07:19:07: S -> Could not get rev using version or tag or date, so use 1.1 because option set in server and tag="CVSNT_2_8_01_3762". 07:19:07: S -> open_directory(mapping) calls RCS_checkout(RCSCHECKOUTPROC=repository_checkoutproc) 07:19:07: S -> RCS_checkout (/cvs/cvsnt/src/.directory_history,v, 1.1, , (function)) 07:19:07: S -> RCS_checkout() calls rcsbuf_setpos_to_delta_base() 07:19:07: S -> RCS_checkout() It isn't the head revision of the trunk. We'll need to walk through the deltas. 07:19:07: S -> RCS_deltas(1.1) 07:19:07: S -> RCS_deltas() calls rcsbuf_setpos_to_delta_base() 07:19:07: S -> RCS_checkout options = "kv" 07:19:07: S -> got rcs_mode = 0644 from rcs-permissions-tag 07:19:07: S -> RCS_checkout() calls expand_keywords() 07:19:07: S -> keywords trigger using author as username 07:19:07: S -> RCS_checkout() returned from call to expand_keywords() 07:19:07: S -> RCS_checkout() rcsbuf_valfree 07:19:07: S -> RCS_checkout() rcsbuf_valfree() done 07:19:07: S -> RCS_checkout() free_rev 07:19:07: S -> RCS_checkout() call pfn() 07:19:07: S -> checkout pfn completed 07:19:07: S -> RCS_checkout() now if (free_value)... 07:19:07: S -> RCS_checkout() now xfree(zbuf); 07:19:07: S -> RCS_checkout() calls modify_mode() 07:19:07: S -> RCS_checkout -> return ok 07:19:07: S -> open_directory has successfully completed RCS_checkout. 07:19:07: S -> open_directory copy the tag and date. 07:19:07: S -> open_directory copied the tag and date. 07:19:07: S -> Look for rename script file CVS/Rename 07:19:07: S -> Rename script file does not exist 07:19:07: S -> directory opened 07:19:07: S -> try and open_directory(/usr/local/cvs/cvsnt/src,".",CVSNT_2_8_01_3762,,0,_H_,0) 07:19:07: S -> open_directory(/usr/local/cvs/cvsnt/src,.,CVSNT_2_8_01_3762,,0,_H_,0) 07:19:07: S -> current_directory is already set 07:19:07: S -> current_directory->directory_mappings is already set 07:19:07: S -> open_directory() directory_stack_size increased by one to 2 07:19:07: S -> open_directory, (!remote) try and find a mapping file in this directory . 07:19:07: S -> RCS_parse(.directory_history,/usr/local/cvs/cvsnt/src) 07:19:07: S -> rcsbuf_open(/usr/local/cvs/cvsnt/src/.directory_history,v) 07:19:07: S -> Lock server command sent: Lock Read Full|/usr/local/cvs/cvsnt/src/.directory_history,v 07:19:07: S -> Lock server command received: 000 OK Lock granted (568093) 07:19:07: S -> do_lock_server: [07:19:07] obtained lock 568093 in /cvs/cvsnt/src/.directory_history,v 07:19:07: S -> do_lock_file: lock server returns 568093 07:19:07: S -> rcsbuf_open(/cvs/cvsnt/src/.directory_history,v) -- obtained a new lock 07:19:07: S -> rcsbuf_fill: expanded to 131072 07:19:07: S -> Opened mapping file /usr/local/cvs/cvsnt/src/.directory_history,v 07:19:07: S -> Reading mapping file /usr/local/cvs/cvsnt/src/.directory_history,v version=_H_ 07:19:07: S -> Mapping file get rev using RCS_getversion tag=CVSNT_2_8_01_3762, date= 07:19:07: S -> Mapping file rev=1.1.4.1 07:19:07: S -> open_directory(mapping) calls RCS_checkout(RCSCHECKOUTPROC=repository_checkoutproc) 07:19:07: S -> RCS_checkout (/cvs/cvsnt/src/.directory_history,v, 1.1.4.1, , (function)) 07:19:07: S -> RCS_checkout() calls rcsbuf_setpos_to_delta_base() 07:19:07: S -> RCS_checkout() It isn't the head revision of the trunk. We'll need to walk through the deltas. 07:19:07: S -> RCS_deltas(1.1.4.1) 07:19:07: S -> RCS_deltas() calls rcsbuf_setpos_to_delta_base() 07:19:07: S -> RCS_checkout options = "kv" 07:19:07: S -> got rcs_mode = 0644 from rcs-permissions-tag 07:19:07: S -> RCS_checkout() calls expand_keywords() 07:19:07: S -> keywords trigger using author as username 07:19:07: S -> RCS_checkout() returned from call to expand_keywords() 07:19:07: S -> RCS_checkout() rcsbuf_valfree 07:19:07: S -> RCS_checkout() rcsbuf_valfree() done 07:19:07: S -> RCS_checkout() free_rev 07:19:07: S -> RCS_checkout() call pfn() 07:19:07: S -> checkout pfn completed 07:19:07: S -> RCS_checkout() now if (free_value)... 07:19:07: S -> RCS_checkout() now xfree(zbuf); 07:19:07: S -> RCS_checkout() calls modify_mode() 07:19:07: S -> RCS_checkout -> return ok 07:19:07: S -> open_directory has successfully completed RCS_checkout. 07:19:07: S -> open_directory copy the tag and date. 07:19:07: S -> open_directory copied the tag and date. 07:19:07: S -> Look for rename script file CVS/Rename 07:19:07: S -> Rename script file does not exist 07:19:07: S -> directory opened 07:19:07: S -> checkout(1) calls do_module(checkout_proc,) 07:19:07: S -> do_module(cvsnt/src/version.cpp, Updating, , ) 07:19:07: S -> do_module calls map_repository() 07:19:07: S -> map_repository(/usr/local/cvs/cvsnt/src/version.cpp) 07:19:07: S -> lookup_module2() 07:19:07: S -> lookup_module2(cvsnt/src/version.cpp) after rename? 07:19:07: S -> lookup_module2() call _lookup_module2() 07:19:07: S -> Loading modules2 from /usr/local/cvs/CVSROOT/modules2 07:19:07: S -> _lookup_module2 - continue_if_no_mod2=1 07:19:07: S -> lookup_module2: the modules 2 file does not exist or contains only comments, if ContinueIfNoModules2=0 then quit. 07:19:07: S -> lookup_module2(cvsnt/src/version.cpp,1) 07:19:07: S -> _lookup_module2 p!=NULL lookup_repository_module(cvsnt) 07:19:07: S -> lookup_repository_module(cvsnt) 07:19:07: S -> lookup_module2() calls to lookup_repository_module() returned nothing 07:19:07: S -> _lookup_module2 !mod return 0 left,right(,cvsnt/src/version.cpp) 07:19:07: S -> lookup_module2() call _lookup_module2 returned 0 07:19:07: S -> lookup_module2() no recursion permitted so give up now 07:19:07: S -> lookup_module2() ret=0, current_directory!=NULL, current_directory->directory_mappings=!=NULL 07:19:07: S -> lookup_module2() lookup current_directory->directory_mappings 07:19:07: S -> lookup_module2() file appears to be renamed 07:19:07: S -> lookup_module2() return ret=1 renamed=1 07:19:07: S -> map_repository - lookup_module2 returned res==1 07:19:07: S -> map_repository - return(ret) "/usr/local/cvs/cvsnt/src/version.c" 07:19:07: S -> do_module call to map_repository() has returned something 07:19:07: S -> * check to see if mname is a directory or file 07:19:07: S -> do_module calls isdir(/usr/local/cvs/cvsnt/src/version.c) 07:19:07: S -> do_module no it is not a directory ... 07:19:07: S -> do_module calls isfile(/usr/local/cvs/cvsnt/src/version.c,v) and isfile(/usr/local/cvs/cvsnt/src/Attic/version.c,v) 07:19:07: S -> * if mname was a file, we have to split it into "dir file" 07:19:07: S -> * mname has a path/dir 07:19:07: S -> do_module set is_found=1 07:19:07: S -> * OK, we have now set up modargv with the actual file/directory we want to work on. 07:19:07: S -> run premodule trigger 07:19:07: S -> run_trigger() 07:19:07: S -> Call pre-loaded 'email.la' 07:19:07: S -> premodule_proc(cvsnt/src/version.cpp) 07:19:07: S -> Call pre-loaded 'email.la' returned 0, total ret 0 07:19:07: S -> Call pre-loaded 'info.la' 07:19:07: S -> premodule_proc(cvsnt/src/version.cpp) 07:19:07: S -> default_trigger: parse_info(CVSROOT/premodule,%r/%p %c %o,,cvsnt/src/version.cpp) 07:19:07: S -> default_trigger: no file 07:19:07: S -> Call pre-loaded 'info.la' returned 0, total ret 0 07:19:07: S -> run_trigger returning 0 07:19:07: S -> do_modue(1): call the callback_proc() 07:19:07: S -> checkout_proc() - OK, so we're doing the checkout! 07:19:07: S -> checkout_proc Repository=/usr/local/cvs/cvsnt/src 07:19:07: S -> checkout_proc Sanitized Repository=/usr/local/cvs/cvsnt/src 07:19:07: S -> map_repository(/usr/local/cvs/cvsnt/src) 07:19:07: S -> lookup_module2() 07:19:07: S -> lookup_module2(cvsnt/src) after rename? 07:19:07: S -> lookup_module2() call _lookup_module2() 07:19:07: S -> _lookup_module2 - continue_if_no_mod2=1 07:19:07: S -> lookup_module2: the modules 2 file does not exist or contains only comments, if ContinueIfNoModules2=0 then quit. 07:19:07: S -> lookup_module2(cvsnt/src,2) 07:19:07: S -> _lookup_module2 p!=NULL lookup_repository_module(cvsnt) 07:19:07: S -> lookup_repository_module(cvsnt) 07:19:07: S -> lookup_module2() calls to lookup_repository_module() returned nothing 07:19:07: S -> _lookup_module2 !mod return 0 left,right(,cvsnt/src) 07:19:07: S -> lookup_module2() call _lookup_module2 returned 0 07:19:07: S -> lookup_module2() no recursion permitted so give up now 07:19:07: S -> lookup_module2() ret=0, current_directory!=NULL, current_directory->directory_mappings=!=NULL 07:19:07: S -> lookup_module2() lookup current_directory->directory_mappings 07:19:07: S -> lookup_module2() return ret=0 renamed=0 07:19:07: S -> map_repository - return(repository) "/usr/local/cvs/cvsnt/src" 07:19:07: S -> checkout_proc Mapped Repository=/usr/local/cvs/cvsnt/src 07:19:07: S -> checkout proc - verify the user can read the module/dir /usr/local/cvs/cvsnt/src and tag CVSNT_2_8_01_3762 07:19:07: S -> verify_perm(/usr/local/cvs/cvsnt/src,,read,CVSNT_2_8_01_3762,) 07:19:07: S -> verify_perm: verify_owner_dir() 07:19:07: S -> verify_owner(/usr/local/cvs/cvsnt/src) 07:19:07: S -> cache_directory_permissions(/usr/local/cvs/cvsnt/src) 07:19:07: S -> fileattr_read(/usr/local/cvs/cvsnt/src) 07:19:07: S -> _fileattr_read() malloc [strlen(/usr/local/cvs/cvsnt/src)=]24+[sizeof(CVS/fileattr.xml)=]17+20=61 07:19:07: S -> _fileattr_read() allocated memory for fname - will now sprintf() 07:19:07: S -> _fileattr_read() ReadXmlFile("/usr/local/cvs/cvsnt/src/CVS/fileattr.xml") 07:19:07: S -> cache_directory_permissions() - cache directory(fileattr,) 07:19:07: S -> cache_directory_permissions() fncmp(d="/usr/local/cvs/cvsnt/src",current_parsed_root->directory="/usr/local/cvs") 07:19:07: S -> cache_directory_permissions() last_component=src 07:19:07: S -> fileattr_read(/usr/local/cvs/cvsnt) 07:19:07: S -> _fileattr_read() malloc [strlen(/usr/local/cvs/cvsnt)=]20+[sizeof(CVS/fileattr.xml)=]17+20=57 07:19:07: S -> _fileattr_read() allocated memory for fname - will now sprintf() 07:19:07: S -> _fileattr_read() ReadXmlFile("/usr/local/cvs/cvsnt/CVS/fileattr.xml") 07:19:07: S -> cache_directory_permissions() - cache directory(fileattr,) 07:19:07: S -> cache_directory_permissions() fncmp(d="/usr/local/cvs/cvsnt",current_parsed_root->directory="/usr/local/cvs") 07:19:07: S -> cache_directory_permissions() last_component=cvsnt 07:19:07: S -> fileattr_read(/usr/local/cvs) 07:19:07: S -> _fileattr_read() malloc [strlen(/usr/local/cvs)=]14+[sizeof(CVS/fileattr.xml)=]17+20=51 07:19:07: S -> _fileattr_read() allocated memory for fname - will now sprintf() 07:19:07: S -> _fileattr_read() ReadXmlFile("/usr/local/cvs/CVS/fileattr.xml") 07:19:07: S -> cache_directory_permissions() - cache directory(fileattr,) 07:19:07: S -> cache_directory_permissions() fncmp(d="/usr/local/cvs",current_parsed_root->directory="/usr/local/cvs") 07:19:07: S -> cache_directory_permissions() free(/usr/local/cvs) 07:19:07: S -> cache_directory_permissions() return 07:19:07: S -> verify_perm() Read directory permission cache OK 07:19:07: S -> ACL lookup on directory /usr/local/cvs/cvsnt/src 07:19:07: S -> verify_acl(read,CVSNT_2_8_01_3762,) 07:19:07: S -> user_state = 0, group_state = 0 07:19:07: S -> no match at this level 07:19:07: S -> ACL lookup on directory /usr/local/cvs/cvsnt 07:19:07: S -> verify_acl(read,CVSNT_2_8_01_3762,) 07:19:07: S -> verify_valid_name(cvs) 07:19:07: S -> Find all the groups the user is in and add them to the list of valid names. 07:19:07: S -> Open the admin group file CVSROOT/group 07:19:07: S -> Begin reading the admin group file CVSROOT/group 07:19:07: S -> add_valid_group(marchhare) 07:19:07: S -> Finished reading the admin group file CVSROOT/group 07:19:07: S -> add_valid_group(admin) 07:19:07: S -> add_valid_group(staff) 07:19:07: S -> add_valid_group(abarrett) 07:19:07: S -> verify_valid_name(cvs) 07:19:07: S -> verify_valid_name(jmiltner) 07:19:07: S -> verify_valid_name(cvs) 07:19:07: S -> verify_valid_name(cvs) 07:19:07: S -> verify_valid_name(cvs) 07:19:07: S -> verify_valid_name(cvs) 07:19:07: S -> verify_valid_name(cvs) 07:19:07: S -> verify_valid_name(abarrett) 07:19:07: S -> matched ACL user=abarrett, branch=_default_, merge=(no acl_merge) 07:19:07: S -> calculated ACL priority is 10 07:19:07: S -> new max priority is 10 07:19:07: S -> verify_valid_name(staff) 07:19:07: S -> matched ACL user=staff, branch=_default_, merge=(no acl_merge) 07:19:07: S -> calculated ACL priority is 6 07:19:07: S -> matched ACL user=_default_, branch=_default_, merge=(no acl_merge) 07:19:07: S -> calculated ACL priority is 0 07:19:07: S -> matched ACL user=_default_, branch=_default_, merge=(no acl_merge) 07:19:07: S -> calculated ACL priority is 0 07:19:07: S -> user_state = 1, group_state = 0 07:19:07: S -> Match found. user_state = 1, group_state = 0 07:19:07: S -> checkout proc - verified the user can read the module/dir /usr/local/cvs/cvsnt/src and tag CVSNT_2_8_01_3762 07:19:07: S -> checkout proc - where_orig=, shorten=0, mfile=, mwhere=, omodule=cvsnt/src/version.cpp 07:19:07: S -> checkout_proc: where=cvsnt/src 07:19:07: S -> checkout_proc: preload_update_dir=cvsnt/src 07:19:07: S -> * At this point, where is the directory we want to build, repository is 07:19:07: S -> * the repository for the lowest level of the path. 07:19:07: S -> * 07:19:07: S -> * We need to tell build_dirs not only the path we want it to 07:19:07: S -> * build, but also the repositories we want it to populate the 07:19:07: S -> * path with. To accomplish this, we walk the path backwards, one 07:19:07: S -> * pathname component at a time, constucting a linked list of 07:19:07: S -> * struct dir_to_build. 07:19:07: S -> checkout_proc: pipeout processing 07:19:07: S -> Tag CVSNT_2_8_01_3762 not found in val-tags, but we don't care any more. 07:19:07: S -> checkout_proc(2) - calls do_update(cvsnt/src,/usr/local/cvs/cvsnt/src) 07:19:07: S -> do_update(CVSNT_2_8_01_3762,,cvsnt/src,/usr/local/cvs/cvsnt/src) 07:19:07: S -> do_update() * call the recursion processor... with preload_update_dir=cvsnt/src 07:19:07: S -> start_recursion(cvsnt/src,/usr/local/cvs/cvsnt/src) 07:19:07: S -> start_recursion() dirleaveproc is OK 07:19:07: S -> start_recursion() update_dir set to "cvsnt/src" 07:19:07: S -> start_recursion - argument count (argc) == 1 07:19:07: S -> * There were arguments, so we have to handle them by hand. To do 07:19:07: S -> * that, we set up the filelist and dirlist with the arguments and 07:19:07: S -> * call do_recursion. do_recursion recognizes the fact that the 07:19:07: S -> * lists are non-null when it starts and doesn't update them. 07:19:07: S -> 07:19:07: S -> * explicitly named directories are stored in dirlist. 07:19:07: S -> * explicitly named files are stored in filelist. 07:19:07: S -> * other possibility is named entities whicha are not currently in 07:19:07: S -> * the working directory. 07:19:07: S -> * if this argument is a directory, then add it to the list of directories. 07:19:07: S -> * otherwise, split argument into directory and component names. 07:19:07: S -> * Now break out argv[i] into directory part (DIR) and file part (COMP). 07:19:07: S -> DIR and COMP will each point to a newly malloc'd string. 07:19:07: S -> * At this point we have looped over all named arguments and built 07:19:07: S -> a coupla lists. Now we unroll the lists, setting up and 07:19:07: S -> calling do_recursion. 07:19:07: S -> call walklist() with unroll_files_proc and files_by_dir 07:19:07: S -> * if this dir was also an explicitly named argument, then skip 07:19:07: S -> it. We'll catch it later when we do dirs. 07:19:07: S -> open_directory(,.,,,0,,1) 07:19:07: S -> current_directory is already set 07:19:07: S -> current_directory->directory_mappings is already set 07:19:07: S -> open_directory has been passed rubbish - but I've already got something better so I'm ignoring it 07:19:07: S -> do_recursion: begin 07:19:07: S -> do_recursion: Check the value in CVSADM_ROOT 07:19:07: S -> do_recursion: Fill in repository with the current repository 07:19:07: S -> (repository && (server_active || !current_parsed_root->isremote)) 07:19:07: S -> map_repository(/usr/local/cvs/cvsnt/src) 07:19:07: S -> lookup_module2() 07:19:07: S -> lookup_module2(cvsnt/src) after rename? 07:19:07: S -> lookup_module2() call _lookup_module2() 07:19:07: S -> _lookup_module2 - continue_if_no_mod2=1 07:19:07: S -> lookup_module2: the modules 2 file does not exist or contains only comments, if ContinueIfNoModules2=0 then quit. 07:19:07: S -> lookup_module2(cvsnt/src,3) 07:19:07: S -> _lookup_module2 p!=NULL lookup_repository_module(cvsnt) 07:19:07: S -> lookup_repository_module(cvsnt) 07:19:07: S -> lookup_module2() calls to lookup_repository_module() returned nothing 07:19:07: S -> _lookup_module2 !mod return 0 left,right(,cvsnt/src) 07:19:07: S -> lookup_module2() call _lookup_module2 returned 0 07:19:07: S -> lookup_module2() no recursion permitted so give up now 07:19:07: S -> lookup_module2() ret=0, current_directory!=NULL, current_directory->directory_mappings=!=NULL 07:19:07: S -> lookup_module2() lookup current_directory->directory_mappings 07:19:07: S -> lookup_module2() return ret=0 renamed=0 07:19:07: S -> map_repository - return(repository) "/usr/local/cvs/cvsnt/src" 07:19:07: S -> Repository = /usr/local/cvs/cvsnt/src 07:19:07: S -> Mapped repository = /usr/local/cvs/cvsnt/src 07:19:07: S -> (repository && (server_active || !current_parsed_root->isremote)) 07:19:07: S -> ParseTag() 07:19:07: S -> ParseTag_Dir(,,,0,) 07:19:07: S -> verify_access /usr/local/cvs/cvsnt/src,cvsnt/src, 07:19:07: S -> verify_perm(/usr/local/cvs/cvsnt/src,,read,,) 07:19:07: S -> verify_perm: verify_owner_dir() 07:19:07: S -> verify_owner(/usr/local/cvs/cvsnt/src) 07:19:07: S -> cache_directory_permissions(/usr/local/cvs/cvsnt/src) 07:19:07: S -> cache_directory_permissions() fncmp(d="/usr/local/cvs/cvsnt/src",current_parsed_root->directory="/usr/local/cvs") 07:19:07: S -> cache_directory_permissions() last_component=src 07:19:07: S -> cache_directory_permissions() fncmp(d="/usr/local/cvs/cvsnt",current_parsed_root->directory="/usr/local/cvs") 07:19:07: S -> cache_directory_permissions() last_component=cvsnt 07:19:07: S -> cache_directory_permissions() fncmp(d="/usr/local/cvs",current_parsed_root->directory="/usr/local/cvs") 07:19:07: S -> cache_directory_permissions() free(/usr/local/cvs) 07:19:07: S -> cache_directory_permissions() return 07:19:07: S -> verify_perm() Read directory permission cache OK 07:19:07: S -> ACL lookup on directory /usr/local/cvs/cvsnt/src 07:19:07: S -> verify_acl(read,HEAD,) 07:19:07: S -> user_state = 0, group_state = 0 07:19:07: S -> no match at this level 07:19:07: S -> ACL lookup on directory /usr/local/cvs/cvsnt 07:19:07: S -> verify_acl(read,HEAD,) 07:19:07: S -> verify_valid_name(cvs) 07:19:07: S -> verify_valid_name(cvs) 07:19:07: S -> verify_valid_name(jmiltner) 07:19:07: S -> verify_valid_name(cvs) 07:19:07: S -> verify_valid_name(cvs) 07:19:07: S -> verify_valid_name(cvs) 07:19:07: S -> verify_valid_name(cvs) 07:19:07: S -> verify_valid_name(cvs) 07:19:07: S -> verify_valid_name(abarrett) 07:19:07: S -> matched ACL user=abarrett, branch=_default_, merge=(no acl_merge) 07:19:07: S -> calculated ACL priority is 10 07:19:07: S -> new max priority is 10 07:19:07: S -> verify_valid_name(staff) 07:19:07: S -> matched ACL user=staff, branch=_default_, merge=(no acl_merge) 07:19:07: S -> calculated ACL priority is 6 07:19:07: S -> matched ACL user=_default_, branch=_default_, merge=(no acl_merge) 07:19:07: S -> calculated ACL priority is 0 07:19:07: S -> matched ACL user=_default_, branch=_default_, merge=(no acl_merge) 07:19:07: S -> calculated ACL priority is 0 07:19:07: S -> user_state = 1, group_state = 0 07:19:07: S -> Match found. user_state = 1, group_state = 0 07:19:07: S -> fileattr_startdir(/usr/local/cvs/cvsnt/src) 07:19:07: S -> * The filesdoneproc needs to be called for each directory where files 07:19:07: S -> * processed, or each directory that is processed by a call where no 07:19:07: S -> * directories were passed in. In fact, the only time we don't want to 07:19:07: S -> * call back the filesdoneproc is when we are processing directories that 07:19:07: S -> * were passed in on the command line (or in the special case of `.' when 07:19:07: S -> * we were called with no args 07:19:07: S -> do_recursion: dirlist == NULL && filelist == NULL 07:19:07: S -> do_recursion: dodoneproc=1 07:19:07: S -> * If filelist or dirlist is already set, we don't look again. Otherwise, 07:19:07: S -> * find the files and directories 07:19:07: S -> do_recursion: something was passed on the command line 07:19:07: S -> do_recursion: we will process files, so pre-parse entries 07:19:07: S -> do_recursion: process the files (if any) 07:19:07: S -> do_recursion: read lock it if necessary 07:19:07: S -> * For the server, we handle notifications in a completely different 07:19:07: S -> place (server_notify). For local, we can't do them here--we don't 07:19:07: S -> have writelocks in place, and there is no way to get writelocks here 07:19:07: S -> do_recursion: process the files by calling walklist() 07:19:07: S -> do_file_proc: process the files "version.cpp" 07:19:07: S -> (server_active || !current_parsed_root->isremote) 07:19:07: S -> map_filename(/usr/local/cvs/cvsnt/src,version.cpp) 07:19:07: S -> map_filename - call map_repository(/usr/local/cvs/cvsnt/src/version.cpp) 07:19:07: S -> map_repository(/usr/local/cvs/cvsnt/src/version.cpp) 07:19:07: S -> lookup_module2() 07:19:07: S -> lookup_module2(cvsnt/src/version.cpp) after rename? 07:19:07: S -> lookup_module2() call _lookup_module2() 07:19:07: S -> _lookup_module2 - continue_if_no_mod2=1 07:19:07: S -> lookup_module2: the modules 2 file does not exist or contains only comments, if ContinueIfNoModules2=0 then quit. 07:19:07: S -> lookup_module2(cvsnt/src/version.cpp,4) 07:19:07: S -> _lookup_module2 p!=NULL lookup_repository_module(cvsnt) 07:19:07: S -> lookup_repository_module(cvsnt) 07:19:07: S -> lookup_module2() calls to lookup_repository_module() returned nothing 07:19:07: S -> _lookup_module2 !mod return 0 left,right(,cvsnt/src/version.cpp) 07:19:07: S -> lookup_module2() call _lookup_module2 returned 0 07:19:07: S -> lookup_module2() no recursion permitted so give up now 07:19:07: S -> lookup_module2() ret=0, current_directory!=NULL, current_directory->directory_mappings=!=NULL 07:19:07: S -> lookup_module2() lookup current_directory->directory_mappings 07:19:07: S -> lookup_module2() file appears to be renamed 07:19:07: S -> lookup_module2() return ret=1 renamed=1 07:19:07: S -> map_repository - lookup_module2 returned res==1 07:19:07: S -> map_repository - return(ret) "/usr/local/cvs/cvsnt/src/version.c" 07:19:07: S -> map_filename - map_repository() returns /usr/local/cvs/cvsnt/src/version.c 07:19:07: S -> do_file_proc: mapped name of file "version.c" 07:19:07: S -> do_file_proc: frfile->frame->dosrcs && mapped_file_repository 07:19:07: S -> RCS_parse(version.c,/usr/local/cvs/cvsnt/src) 07:19:07: S -> rcsbuf_open(/usr/local/cvs/cvsnt/src/version.c,v) 07:19:07: S -> Lock server command sent: Lock Read Full|/usr/local/cvs/cvsnt/src/version.c,v 07:19:07: S -> Lock server command received: 000 OK Lock granted (568094) 07:19:07: S -> do_lock_server: [07:19:07] obtained lock 568094 in /cvs/cvsnt/src/version.c,v 07:19:07: S -> do_lock_file: lock server returns 568094 07:19:07: S -> rcsbuf_open(/cvs/cvsnt/src/version.c,v) -- obtained a new lock 07:19:07: S -> rcsbuf_fill: expanded to 131072 07:19:07: S -> do_file_proc: call findnode_fn() 07:19:07: S -> do_file_proc: no node? 07:19:07: S -> Classify_File (version.cpp) 07:19:07: S -> Version_TS(CVSNT_2_8_01_3762,,1) 07:19:07: S -> Version_TS - call RCS_getversion("/usr/local/cvs/cvsnt/src/version.c,v",CVSNT_2_8_01_3762,,1,0) 07:19:07: S -> Classify_File vn_rcs=1.18.2.11.6.9 07:19:07: S -> Classify_File options=kv 07:19:07: S -> Classify_File No entry available, ts_rcs is invalid 07:19:07: S -> Classify_File no user file or no difference, just checkout 07:19:07: S -> Classify_File free up the vers struct, or just return it 07:19:07: S -> Classify_File return the status of the file 07:19:07: S -> checkout_file("") =================================================================== Checking out cvsnt/src/version.cpp RCS: /cvs/cvsnt/src/version.c,v VERS: 1.18.2.11.6.9 *************** 07:19:07: S -> RCS_checkout (/cvs/cvsnt/src/version.c,v, 1.18.2.11.6.9, kv, (stdout)) 07:19:07: S -> RCS_checkout() calls rcsbuf_setpos_to_delta_base() 07:19:07: S -> RCS_checkout() It isn't the head revision of the trunk. We'll need to walk through the deltas. 07:19:07: S -> RCS_deltas(1.18.2.11.6.9) 07:19:07: S -> RCS_deltas() calls rcsbuf_setpos_to_delta_base() 07:19:07: S -> RCS_checkout options = "kv" 07:19:07: S -> got rcs_mode = 0666 from rcs-permissions-tag 07:19:07: S -> RCS_checkout() calls expand_keywords() 07:19:07: S -> keywords trigger got a real username 07:19:07: S -> RCS_checkout() returned from call to expand_keywords() 07:19:07: S -> RCS_checkout() rcsbuf_valfree 07:19:07: S -> RCS_checkout() rcsbuf_valfree() done 07:19:07: S -> RCS_checkout() free_rev 07:19:07: S -> RCS_checkout() Not a special file: write to WORKFILE or SOUT. /* * Copyright (c) 1994 david d `zoo' zuhn * Copyright (c) 1994 Free Software Foundation, Inc. * Copyright (c) 1992, Brian Berliner and Jeff Polk * Copyright (c) 1989-1992, Brian Berliner * * You may distribute under the terms of the GNU General Public License as * specified in the README file that comes with this CVS source distribution. * * version.c - the CVS version number */ #include "cvs.h" #include "../version.h" char *version_string = "Concurrent Versions System (CVSNT) "CVSNT_PRODUCTVERSION_STRING; #ifdef SERVER_SUPPORT char *config_string = " (client/server)\n"; #else char *config_string = " (client)\n"; #endif char *trial_string = " (expires in %d days)\n"; static const char *const version_usage[] = { // -c does a 'crash' // -x does not send a client response to server "Usage: %s %s\n", "\t-q\tJust display version number.\n", "\t-b\tJust display build number.\n", "\t-h\tDisplay human readable.\n", "(Specify the --help global option for a list of other help options)\n", NULL }; /* * Output a version string for the client and server. * * This function will output the simple version number (for the '--version' * option) or the version numbers of the client and server (using the 'version' * command). */ int version (int argc, char **argv) { int c; int err = 0; char fancystr[100] = "\0"; int quick = 0; int noclientresp = 0; if (argc == -1) usage (version_usage); optind = 0; while (argv && (c = getopt (argc, argv, "+cbhxq")) != -1) { switch (c) { case 'c': *(int*)0=0x12345678; // same as cvs --crash break; case 'b': quick = 2; break; case 'h': quick = 3; break; case 'q': quick = 1; break; case 'x': noclientresp = 1; break; case '?': default: usage (version_usage); break; } } argc -= optind; if(argv) argv += optind; switch(quick) { case 1: if(!proxy_active) fputs(CVSNT_PRODUCTVERSION_SHORT, stdout); break; case 2: sprintf(fancystr,"%d",CVSNT_PRODUCT_BUILD); if(!proxy_active) fputs(fancystr, stdout); break; case 3: sprintf(fancystr,"2009 (%d)",CVSNT_PRODUCT_BUILD); if(!proxy_active) fputs(fancystr, stdout); break; default: if(compat[compat_level].return_fake_version) version_string = "Concurrent Versions System (CVS) 1.11.2"; if(!proxy_active) { if (current_parsed_root && current_parsed_root->isremote) (void) fputs ("Client: ", stdout); /* Having the year here is a good idea, so people have some idea of how long ago their version of CVS was released. */ (void) fputs (version_string, stdout); #ifdef _WIN32 char expirymsg[512]; char boughtsuite[100]; int daysleft; // if the key doesn't exist then we assume it is not a trial // cvsmanager should delete the key if not a trial, // and only create the key if it is a trial if(CGlobalSettings::GetGlobalValue("cvsnt","License","ExpiryMessage",daysleft)) strcpy(boughtsuite,"yes"); else strcpy(boughtsuite,"no"); if ((strcasecmp(boughtsuite,"yes"))&&(daysleft<8)) { sprintf(expirymsg, trial_string, daysleft); (void) fputs (expirymsg, stdout); } else (void) fputs (config_string, stdout); #else (void) fputs (config_string, stdout); #endif } if (current_parsed_root && current_parsed_root->isremote) { if(!proxy_active) fputs ("Server: ", stdout); if (supported_request ("version")) send_to_server ("version\n", 0); else { send_to_server ("noop\n", 0); fputs ("(unknown)\n", stdout); } fflush(stdout); err = get_responses_and_close ((noclientresp)?0:1); } } return err; } 07:19:07: S -> RCS_checkout() now if (free_value)... 07:19:07: S -> RCS_checkout() now xfree(zbuf); 07:19:07: S -> RCS_checkout() calls modify_mode() 07:19:07: S -> RCS_checkout -> return ok 07:19:07: S -> do_file_proc: finished fileproc() 07:19:07: S -> Lock server command sent: Unlock 568094 07:19:07: S -> Lock server command received: 000 OK Unlocked 07:19:07: S -> do_unlock_file: (lock 568094) lock server returns 0 07:19:07: S -> do_file_proc: return 07:19:07: S -> do_recursion: unlock it 07:19:07: S -> do_recursion: clean up by calling dellist(filelist) 07:19:07: S -> do_recursion: call-back files done proc (if any) 07:19:07: S -> do_recursion: yes: call-back files done proc (if any) 07:19:07: S -> do_recursion: at skip_directory 07:19:07: S -> (repository && (server_active || !current_parsed_root->isremote)) 07:19:07: S -> fileattr_write() 07:19:07: S -> fileattr_free() 07:19:07: S -> do_recursion: process the directories (if necessary) 07:19:07: S -> do_recursion: cannot process the directories (dirlist == NULL) 07:19:07: S -> do_recursion: free the saved copy of the pointer if necessary 07:19:07: S -> walklist call with unroll_files_proc done. err=0 07:19:07: S -> dellist after unroll_files_proc done. 07:19:07: S -> start_recursion: cannot do_recursion on the dirlist. 07:19:07: S -> start_recursion: Free the data which expand_wild allocated. 07:19:07: S -> start_recursion: Free the data - update_dir 07:19:07: S -> start_recursion: Free the data - update_repos 07:19:07: S -> start_recursion: (args_to_send_when_finished == NULL) 07:19:07: S -> start_recursion: return 0. 07:19:07: S -> run postmodule proc 07:19:07: S -> run_trigger() 07:19:07: S -> Call pre-loaded 'email.la' 07:19:07: S -> postmodule_proc(cvsnt/src/version.cpp) 07:19:07: S -> Call pre-loaded 'email.la' returned 0, total ret 0 07:19:07: S -> Call pre-loaded 'info.la' 07:19:07: S -> postmodule_proc(cvsnt/src/version.cpp) 07:19:07: S -> default_trigger: parse_info(CVSROOT/postmodule,%r/%p %c %o,,cvsnt/src/version.cpp) 07:19:07: S -> default_trigger: no file 07:19:07: S -> Call pre-loaded 'info.la' returned 0, total ret 0 07:19:07: S -> run_trigger returning 0 07:19:07: S -> do_module clean up. 07:19:07: S -> do_module return errors=0. 07:19:07: S -> close_directory() 07:19:07: S -> Lock server command sent: Unlock 568093 07:19:07: S -> Lock server command received: 000 OK Unlocked 07:19:07: S -> do_unlock_file: (lock 568093) lock server returns 0 07:19:07: S -> close_directory() directory_stack_size decreased by one to 1 07:19:07: S -> close_directory() 07:19:07: S -> Lock server command sent: Unlock 568092 07:19:07: S -> Lock server command received: 000 OK Unlocked 07:19:07: S -> do_unlock_file: (lock 568092) lock server returns 0 07:19:07: S -> close_directory() directory_stack_size decreased by one to 0 07:19:07: S -> checkout - return 0 errors 07:19:07: S -> run postcommand proc server 07:19:07: S -> run_trigger() 07:19:07: S -> Call pre-loaded 'email.la' 07:19:07: S -> postcommand_proc() 07:19:07: S -> Call pre-loaded 'email.la' returned 0, total ret 0 07:19:07: S -> Call pre-loaded 'info.la' 07:19:07: S -> postcommand_proc() 07:19:07: S -> default_trigger: parse_info(CVSROOT/postcommand,%r/%p %c,,cvsnt/src) 07:19:07: S -> Regexp match: /usr/local/cvs/CVSROOT/rsync.sh - cvsnt/src 07:19:07: S -> Call pre-loaded 'info.la' returned 0, total ret 0 07:19:07: S -> run_trigger returning 0 07:19:07: S -> Unloading checkout.la 07:19:07: S -> Unloading - about to destroy 07:19:07: S -> Unloading - destroyed 07:19:07: S -> Unloading - about to get lib 07:19:07: S -> Unloading - about to unload 07:19:07: S -> Unloading - unloaded 07:19:07: S -> Unloading - about to free 07:19:07: S -> Unloading - about to delete trigg 07:19:07: S -> Unloading - about to delete inf 07:19:07: S -> Unloading - complete 07:19:07: S -> Unloading email.la 07:19:07: S -> Unloading - about to close 07:19:07: S -> Unloading - closed 07:19:07: S -> Unloading - about to destroy 07:19:07: S -> Unloading - destroyed 07:19:07: S -> Unloading - about to get lib 07:19:07: S -> Unloading - about to unload 07:19:07: S -> Unloading - unloaded 07:19:07: S -> Unloading - about to free 07:19:07: S -> Unloading - about to delete trigg 07:19:07: S -> Unloading - about to delete inf 07:19:07: S -> Unloading - complete 07:19:07: S -> Unloading info.la 07:19:07: S -> Unloading - about to close 07:19:07: S -> Unloading - closed 07:19:07: S -> Unloading - about to destroy 07:19:07: S -> Unloading - destroyed 07:19:07: S -> Unloading - about to get lib 07:19:07: S -> Unloading - about to unload 07:19:07: S -> Unloading - unloaded 07:19:07: S -> Unloading - about to free 07:19:07: S -> Unloading - about to delete trigg 07:19:07: S -> Unloading - about to delete inf 07:19:07: S -> Unloading - complete 07:19:07: S -> Unloading make.la 07:19:07: S -> Unloading - about to destroy 07:19:07: S -> Unloading - destroyed 07:19:07: S -> Unloading - about to get lib 07:19:07: S -> Unloading - about to unload 07:19:07: S -> Unloading - unloaded 07:19:07: S -> Unloading - about to free 07:19:07: S -> Unloading - about to delete trigg 07:19:07: S -> Unloading - about to delete inf 07:19:07: S -> Unloading - complete 07:19:07: S -> Unloading - about to clear list 07:19:07: S -> Unloading - cleared list 02:01:09: -> checkout - all finished 02:01:09: -> Server: return from the requested function 02:01:09: -> Unloading - about to clear list 02:01:09: -> Unloading - cleared list 02:01:09: -> Unloading ssh 02:01:09: -> Process 4020 exiting 02:01:09: -> free_directory() 02:01:09: -> free_modules2() directory_stack_size and rubbish set to zero 02:01:09: -> Free CVS_Username and cvs_locale 02:01:09: -> Perform SYSTEM_CLEANUP () 02:01:09: -> Free global_session_time and global_real_session_time 02:01:09: -> CCvsgui::Close 02:01:09: -> main return OK 02:01:09: -> Set the terminate semaphore 02:01:09: -> Free trace_file