“Common changset detection tolerance in seconds” in detail

PVCS is a file-based vcs. This means that there is no “changeset” which contains all files (and metadata) for a single check-in, even if you check-in several files at the same time.
If you check-in several files at the same time, the following happens in PVCS:

  • All files will get the same check-in username
  • All files will get the same check-in comment
  • All files will get checked-in sequential (one-by-one)
  • All files will get check-in time of the current date/time of each file transfer to the PVCS archive


==> Even if you check-in a couple of files, each of these file get a different check-in time. And if you check-in many files, it depends on your network/server how long it will take. That means, that the check-in date/time might differ in a very large range from each other.

What PVCS2TFS is now doing to find such “changesets”:

  • It gets the first file revision
  • It searches all upcoming revisions, if they contain the same (ordinal) comment and the same (ordinal) username
  • If a same username/comment is found, it checks if the check-in date/time is in the specified range (e.g. +/- 6 seconds) of the current min/max values of all same revisions

If you now have a PVCS check-in with the same comment/username and these files were checked-in during one PVCS check.in, then we might find our first date/time as “13:24:00”. The next file might have “13:24:02” this will also be used in the same checkin (because it is inside the +/- 6 seconds). The next file might have “13:24:08”, this file will also be used, because it is also inside the +/- 6 seconds (-6 sec. => 13:23:56 / +6 sec. => 13:24:08). This means that the +/- 6 seconds is always calculated from the min/max of all existing revisions in this group.

This is the reasons, that it might happen, that the (single) check-in date/time from the comment in the TFS check-in might be different from the real PVCS date/time. Also this time might differ in greater values. If the PVCS check-in took many minutes/hours, then it might happen, that our tool detects this as one TFS changeset and therefor the times may differ in many minutes from each other.