CRITICAL: Overwrite other users' changes with VS client

If you are having a problem using Vault, post a message here.

Moderator: SourceGear

Post Reply
Lane
Posts: 85
Joined: Thu Oct 26, 2006 10:58 am

CRITICAL: Overwrite other users' changes with VS client

Post by Lane » Wed Nov 11, 2009 12:01 pm

We are using Vault 5.0.1.18729 and Visual Studio 2008 with the enhanced client.

The issue is that when you check out, it does not automatically get the latest version of the file. But, when checking out using the standalone Vault client, it does get the latest version as expected.

Steps to reproduce:

1. Developer #1 checks in a file with some changes.
2. Developer #2 checks out the file using Visual Studio. The changes are not included.

This is dangerous because it is really easy to overwrite other peoples’ changes if you forget to get latest before every check out. It is also inconsistent with the expected behavior vis-à-vis the standalone Vault client.

As a result we are forced to do all work with the standalone client and not rely on the VS enhanced client.

This issue is on the verge of forcing us toward a decision to scrap Vault altogether. This is completely unacceptable, and you should be ashamed of yourselves for releasing a product with a defect this severe.

Beth
Posts: 8550
Joined: Wed Jun 21, 2006 8:24 pm
Location: SourceGear
Contact:

Re: CRITICAL: Overwrite other users' changes with VS client

Post by Beth » Thu Nov 12, 2009 10:53 am

I'm running this through some tests right now to see if we can reproduce it.

In the meantime, would your developer be able to try a few things to narrow down where exactly in this process the root cause may be?

After Developer 1 checks in the changes, on the next refresh, Developer 2 should have a different icon in Visual Studio. Just to see if VS is getting the information on the file, could you have Developer 2 try performing a refresh in VS after Developer 1 checks in?
Beth Kieler
SourceGear Technical Support

Lane
Posts: 85
Joined: Thu Oct 26, 2006 10:58 am

Re: CRITICAL: Overwrite other users' changes with VS client

Post by Lane » Thu Nov 12, 2009 12:31 pm

We ran this test.

After Dev 1 checked in the changes, Dev 2 clicked the Refresh button at the top of the Solution Explorer window, but the icon did not update. He refreshed multiple times, still no update. He right-clicked and chose ‘Check out’ and it did not get Dev 1's changes.

So, same issue as before, refreshing changes nothing.

ian_sg
Posts: 787
Joined: Wed May 04, 2005 10:55 am
Location: SourceGear
Contact:

Re: CRITICAL: Overwrite other users' changes with VS client

Post by ian_sg » Thu Nov 12, 2009 1:20 pm

The refresh Beth refers to is the source control refresh, which is unfortunately not performed by the Visual Studio refresh button above the solution explorer. It's accessible under File->Vault Source Control->Refresh Source Control Status. You can also turn on the toolbar (View->Toolbars->Vault VS Enhanced Source Control), and that has a refresh button which does a source control refresh. Using this refresh will work around the bug.

Another workaround is to simply start editing the file. Only the explicit checkout has this bug. If you open a file and start working on it, the latest version is correctly fetched.

Also note that you have to do some extra work to overwrite the other user's change. When checkout fails to get the latest version and I subsequently try to check in a change based on an old version, Vault warns me that I need to do a merge first. Don't ignore that warning, and you won't inadvertently overwrite someone else's change. When you get this warning you should do a Get Latest on the file. It will usually merge the changes automatically without issue. If it tells you it can't, you'll have to do "Show Merge" on the file and rectify the changes yourself.

Nonetheless, this is most definitely a bug. If you explicitly check out a file and a refresh has not occurred, the get latest isn't performed. You shouldn't have to refresh manually. Exclusive checkouts are supposed to prevent you from getting into a "Needs Merge" state, and it's not doing that. A fix will be in the next version (5.0.2) and if you'd like a build before then, let me know and I'll make one available.
Ian Olsen
SourceGear

Lane
Posts: 85
Joined: Thu Oct 26, 2006 10:58 am

Re: CRITICAL: Overwrite other users' changes with VS client

Post by Lane » Thu Nov 12, 2009 1:32 pm

Yes, we definitely need this fix as soon as possible.

Lane
Posts: 85
Joined: Thu Oct 26, 2006 10:58 am

Re: CRITICAL: Overwrite other users' changes with VS client

Post by Lane » Thu Nov 12, 2009 2:18 pm

I just want to add that, while I appreciate the quick response, I have a big issue I have to deal with among my users, who have lost confidence in Vault to serve as an effective source control application as a result as this and other defects we have encountered (recently and in the past). I hope I will be able to reassure them that they aren't going to continue to lose their work and suffer from having to spend hours redoing things they've already done, but this will not be easy.

Please make sure my concerns have been escalated to the top levels of your company. I want to hear about what steps you are taking to ensure that future releases will not have this kind of quality issue. And given the time -- and money -- it costs us to have to resolve issues caused by bugs in your application, I want to know how you plan to guarantee your product against this kind of thing going forward.

ericsink
Posts: 346
Joined: Mon Dec 15, 2003 1:52 pm
Location: SourceGear
Contact:

Re: CRITICAL: Overwrite other users' changes with VS client

Post by ericsink » Fri Nov 13, 2009 4:03 pm

Hi Lane (and others),

My name is Eric Sink. The title on my business card says "The Top Level of the Company".

Please know that we take this situation very seriously. When this kind of bug slips through our QA process, we are embarrassed and upset. We figure out what happened. We talk about how to prevent it from happening again.

As I'm sure you know, software can be amazingly complicated. The bug you found is real and it is reproducible, but as far as we know, you are the only user who has been impacted by it. Unfortunately, your workflow apparently involves just the right sequence of steps.

Fortunately, bugs like this are rare. We work very hard to make sure our products are reliable. By and large, we succeed.

Perhaps more importantly, I don't think anyone in the industry responds to situations like this better than we do.

Lane, I don't blame you a bit for being disappointed with SourceGear. You have a decision to make about your confidence in us. I am not going to try and make your decision for you.

But I am also not going to try to reassure you by making promises that are impossible to keep. If you would feel better working with a vendor who is willing to make promises that are impossible to keep, I'm sure you can find one. At SourceGear, our approach to product quality will continue to emphasize honesty and transparency.

Thanks,

Eric Sink

Lane
Posts: 85
Joined: Thu Oct 26, 2006 10:58 am

Re: CRITICAL: Overwrite other users' changes with VS client

Post by Lane » Fri Nov 13, 2009 4:18 pm

Thank you Eric. I have shared your message with my users.

I also want to let you know that I have appreciated the alacrity with with SourceGear responded to these issues. Within 48 hours we had a build in place that resolves them.

Thanks again for taking the time to respond, and for doing so with honesty and candor.

Post Reply