AccuRev VCS plugin for TeamCity

Hi all,

I am pleased to announce initial support for AccuRev SCM in TeamCity.

This is an early alpha release to get feedback from the community.

The plug-in supports:

  • collecting changes made to a stream

  • checkout on server side

  • obtaining file content (allows diffs)


The plug-in currently does not support:

  • checkout on agent side

  • remote run form IDE

  • checkout rules


The plugin supports AccuRev v4.7.

More details can be found on the AccuRev plugin page.

Francois Retief

1
75 comments
Avatar
Permanently deleted user

Hi Mark,

That's great to hear! Incidentally are you using Abraham's version as a baseline or the trunk version?

I'm just back from a trip but will have some more time now to have a look at all these great new features.

Regards,
Daniel

0
Avatar
Permanently deleted user

Hi Dan,

You're right... the stdout _YYYYMMDD.log file shows all accurev commands issued during a build.
An mksnap command is being executed which works perfectly well from the command line, but doesn't seem to make any difference during a TeamCity build... strange.
I'll take a closer look at this on Wed (tomorrow is a national holiday in Brazil) and will post here any findings I happen to come across.


Cheers,

Daniel

0
Avatar
Permanently deleted user

danere wrote:

Incidentally are you using Abraham's version as a baseline or the trunk version?



We are currently using the trunk version, which I had thought included the zip files posted here but now I realise they don't. Oops!  Is that in branch somewhere already? We're going to take a look at the version from Abraham and most likely start from there.

We've already noticed the plugin is using the "old style" VCS APIs, but figured we'd get it working with those first and then look at porting over to the new API as a separate task.

0
Avatar
Permanently deleted user

That was my bad, I should have tried it out and looked at checking it in.

Would you like to code your changes on top of his version?

Holding off on the API migration for the moment is probably the path to least resistance, I would agree :).

0
Avatar
Permanently deleted user

Hi Daniel,

No problem at all, after looking at the new version we were very happy to base our changes from it as it already implemented a lot of what we wanted anyway!
For example, it already included a 'sync to subdirectory' in the VCS Root options so we don't need to implement Checkout rules after all.

We have added incremental sync to it and are testing it out at the moment.  We also now create a timelocked stream as I mentioned before.

I could share a zip of sources/precompiled bin here when we're done or check it in to the repository - whatever is going to be better.

Cheers,

Mark

0
Avatar
Permanently deleted user

That's great Mark!

I'll talk to the TeamCity guys about getting you checkin access. For the moment it may be easier just to post the code as a zip.

Also I realise I still have a bugfix to checkin that I did recently to address an unhandled collect changes scenario. I'll patch this into your new version when you're done and then check it in.

Cheers,
Dan

0
Avatar
Permanently deleted user

I am about to make further changes to the accurev plugin.
Can I please have access to the plugin's Version control repository.

Thanks

0
Avatar
Permanently deleted user

Hi Abraham,

I have a number of changes to commit myself.

We've not cleaned them up fully yet but I can quickly bundle up what we've got an post here as a zip.

UPDATE: attached source and prebuilt zips

Cheers,

Mark



Attachment(s):
AccurevPlugin-src.zip
accurev.zip
0
Avatar
Permanently deleted user

Hi Abraham/Mark,

Can you guys go here and setup TeamCity accounts if you don't already have them (this is to run builds of the plugin):
http://teamcity.jetbrains.com/registerUser.html

Then could you send me an email (see my profile) with your account names? The Jetbrains guys will then setup your corresponding SVN accounts.

Thanks,
Dan

0
Avatar
Permanently deleted user

Hi guys,

After a bit of a delay I believe we now have a candidate for the next version (0.4) of the plugin.

We've been working with the new version on our site for the last month or so and it looks great. I'm going to checkin the code to the TeamCity SVN repository sometime this week but thought I would post it here first.

Note I've made a number of minor changes to Mark's version of the plugin:

  • Usage of Reference Trees for Agent-side checkout is now the default when setting up a new VCS root. The reason I did this is because we've found them to be a lot faster and more reliable than workspaces (when using workspaces, we encountered issues when needing to make file modifications (e.g. version number file) during builds. with reftrees AccuRev indiscriminately overwrites files during updates, which is preferable)
  • Transactional high-watermark issue. I found a bug in the current release of the plugin that results in the "current version number" being set incorrectly. A symptom of this is that sometimes you'll see doubling-up of change lists in TeamCity (one change list will have the promote comment, the other will say "OTHER INHERITED CHANGES"). This issue was particularly evident when building off AccuRev snapshots with the Agent-side checkout, as it would build against the wrong (earlier) transaction number of the rather than the transaction number of the snapshot. The plugin now sets the version number for each change list as the transactional high-watermark of the AccuRev depot (the display version shown in the change list upon promote, however, stays as the appropriate transaction number for that change list).
  • Collect changes issue resolved around particular scenario involving AccuRev elements with element ID (EID) changes. These types of changes are now being excluded from change lists. This issue was present in the current release of the plugin.
  • 64 bit Windows issue: Previously, the plugin would fail to find the AccuRev bin directory if the 32 bit location had been specified in VCS root settings. The plugin will now attempt to find the AccuRev executable in the default location for the particular OS if the specified location cannot be found. This check occurs in all VCS operations including collect changes, population of agent-side workspace, etc.
  • Fixed issue around handling of the new "Verbosity" setting in the Agent-side checkout: the plugin did not assume a default for VCS roots that had been created prior to the introduction of this setting. The default setting for "Verbosity" is "AccuRev Commands".


I've also updated the README.TXT with the wonderful new features you guys have added.

Regards,
Daniel



Attachment(s):
AccuRevPlugin-src.zip
accurev.zip
0
Avatar
Permanently deleted user

Excellent stuff, thanks Daniel!

0
Avatar
Permanently deleted user

Hi,

I am working on windows platform where a filename (inluding full path) normally can be no more than ~260 characters.

In  this environment, when using AccuRev GUI to populate a workspace where  the combined path and filename with workspace path is exceeding this  maximum limit, then AccuRev just crash and does not populate properly.  For the GUI the workaround is to rename the workspace path to be shorter  so it can be populated in a path which does not exceed the limit.

When  using the AccuRevg plug-in to do server side checkout, this is problem.  As far as I can detect, it is only possible to define the agent side  path but not the temporary path for the server side checkout. So I can  see that it defaults to something like  "C:\TeamCity\temp\accurev23658965311886311583148321255833" (some kind of  random digits of very long length). This means that my temporary folder  easily exceed the maximum limit even though my agent path won't. This  means that I cannto use server side checkout and I am forced to used  client side checkout, which in my case means a lot of installations of  AccuRev on each build agent.

Is there anywhere this temporary folder can be defined today so I can use a shorter path?

If not, can the plug-in please be updated with such feature?


Thanks,
John Ray

PS. It works when I do agent side check-out, but this requires quite a lot of AccuRev installations, one  per agent. Also some features such as excluding directories  cannot be used with agent side checkout. Because  of this it is unfortunately not a very good option.

PPS. I started a separate thread on this topic, but Michael Kuzmin suggested me to post to this thread instead.

0
Avatar
Permanently deleted user

Hey guys,

I'm currrently upgrading our build system from Cruise Control/NAnt.
I had intended using TeamCity because Pre-Tested commits are a big requirement.

Are there any plans to support Pre-Tested commits/Remote runs in the plugin?
Is this something that should be implemented by each user based on how they use AccuRev?

thanks,
Pete

0
Avatar
Permanently deleted user

Hi Pete,

There are no current plans to introduce Pre-Tested commts/Remote runs in the plugin.

I am the only developer remaining and unfortunately my time is needed elsewhere at the moment.

If you or anyone else would like to step forward and take the lead on the OSS project please let me know, and I can help get you access to the JetBrains-based repository and builds.

Regards,
Daniel

0
Avatar
Permanently deleted user

Hi There,

is there a planned release to support Accurev 5.3a at all in the pipeline?

0

Please sign in to leave a comment.