[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Delayed commit of modified file.
From: |
Jim.Hyslop |
Subject: |
RE: Delayed commit of modified file. |
Date: |
Fri, 6 Aug 2004 16:00:25 -0400 |
Glover, Gregory wrote:
> We use wincvs v1.2 and cvs v1.11
There are 17 different "1.11" versions - which one are you using?
> I had a modified file that I committed through WinCVS. I then
> created a tag by module and checked that module out. I found
> out later after moving to production that the tag was done on
> the previous version of the file. In research this I found
> that the modification date on the file I committed was 5
> hours after I had done the commit. The history shows that the
> commit was done before the tag.
Where did you get the modification date from? The file itself, 'cvs log',
what?
> M4112922b|dallison|<remote>|CapTrades/Development/src/java/com
> /reliant/sparc/schedules/export|1.4|ScheduleExportManager.java
> T41129250|dallison|<remote>|A|V_2-16|CapTrades
> O411292b9|dallison|<remote>/*0|CapTrades|V_2-16|CapTrades
> T41137679|dallison|<remote>|A|V_2-17|CapTrades
> O41137708|dallison|<remote>/*0|CapTrades|V_2-17|CapTrades
OK, I read this as: a commit, followed 37 seconds later by an 'rtag V_2-16',
followed a few minutes later by a checkout. 16 or so hours later, there was
an 'rtag V_2-17' followed shortly by another checkout. Sound right?
> Is there a known issue or set of steps I took that could
> delay the write that long on the cvs server. I have used cvs
> for years and never had this happen before.
Very unlikely. CVS works real-time. As soon as the operation completes, the
program ends. A quick look at the source code shows that a commit operation
performs the checkin, then writes to the history file.
If, say, the operating system somehow cached the write, then it would have
to be a very flaky implementation of caching, because the O/S would allow
the second operation ('rtag') to write its data to the repository file
before flushing the results of the first write (the commit).
There is a scenario that could explain this. CVS history does not log 'cvs
tag' commands, only 'cvs rtag'. It's possible that someone used a 'cvs tag'
command before the 'cvs rtag' command, or a 'cvs tag -F -r' command after
the rtag. Is that a likely scenario?
Or, someone could have manually edited the history file. For your sake, I
hope this is an extremely unlikely scenario ;=)
Wait a second - I'm overlooking the obvious here. Did the user who issued
the 'rtag' command ('dallison' according to your history) specify any other
flags, such as a -d or -r?
--
Jim Hyslop
Senior Software Designer
Leitch Technology International Inc. (http://www.leitch.com)
Columnist, C/C++ Users Journal (http://www.cuj.com/experts)