Pre-tested commit with SVN - local working copy update



We are currently evaluating the TeamCity tool with the main purpose of getting the pre-tested commit feature. We are using SVN as our VCS.

There are some questions that crossed our minds and that we would like to clarify a little bit.

Q1: I am working on some file, then I request a pre-tested commit. Meanwhile, there is one commit direcly to SVN, before my pre-tested commit validation ends. When this validation ends, my changes are committed, my local working copy is on head revision, but it did not update the files changed in that commit in-between. Is this by design? If yes, then the solution is that I always have to "manually update" my working copy to make sure I am working over the latest code version?

Q2: When the pre-tested commit validations finishes, is the commit done on my machine (original developer machine that requested the pre-tested commit)? What happens if before the pre-tested commit ends I shut down my machine?

Q3: What if I make a pre-tested commit, that is joined with another SVN commit that was done at the same time, and that breaks the validations? Will my pre-tested commit fail even though the failure was not "my fault"?

Thanks in advance.

Best Regards,

Diogo Oliveira

1 comment

Hello Diogo,

Please see the detailed description of how the pre-tested commit feature works in General flow of the pre-tested commit section.

Answering your questions:

Q1. If all builds finish successfully, the IDE plugin backs up the current version of the files participating in the personal change (as they might already be modified since the pre-tested commit was intitiated), then restores the file contents from the saved "patch", performs the version control commit (reports an error if there was an error like a VCS conflict) and restores the just backed up files to bring the working copy in the last seen state. It does not check out sources from the VCS.

Q2. The commit is done on the developer's machine. If you close the IDE before pre-tested commit, it should save the state and when you start the IDE it should restore state and commit the files to VCS.

Q3. When the build starts, it checks out the latest sources from VCS and then applies personal changes sent from the IDE over. If the build fails, you'll be informed about it, no matter what changes caused the problem.

If you have any further questions, please do not hesitate to ask.


Please sign in to leave a comment.