index > Team Foundation Server - General > Automatic retrieval of latest version on checkout?

Automatic retrieval of latest version on checkout?


Hi,

Since I could not get the latest version automatically with the old SourceSafe (VS 2003), I hoped this was 'solved' with Team System. However, when I tried to get this done, I could not manage it.

The problem I have to deal with is that my colleagues and I work together on the same source (I think that is what has to be done with SourceSafe/TS Big Smile ). Whenever we change something and check in our source, the new source has to be used. When I check out the source edited by my colleague, I just keep MY OWN source instead of retrieving the latest source. Clicking 'Get Latest Version' does the trick, but that one is easily forgotten Big Smile and thus should be 'automated'...

Could anybody help me out? I would much appreciate your help/arguments on this one!

Greetings, Bert Loedeman




Computers are made to solve problems you wouldn't have without them.
Bert Loedeman
yes,

that is there. I'm not sure if that is by design.

But TS makes sure that, you do not check-in your code back without knowing the changed made by others. So when you check-in some code that was not latest, you'll get conflict and merge option that you can use to look into the differences.

HTH
Sanjay
Sanjay Narang
You are right. This morning we dealt with a buggy environment, but we solved that part already. Nevertheless, I think it is a pity that I have to merge, even if a GetLatestVersion should have done the trick...

Greetings, Bert Loedeman


Computers are made to solve problems you wouldn't have without them.
Bert Loedeman
It turns out that this is by design, so let me explain the reasoning behind it.  When you perform a get operation to populate your workspace with a set of files, you are setting yourself up with a consistent snapshot from source control.  Typically, the configuration of source on your system represents a point in time snapshot of files from the repository that are known to work together, and therefore is buildable and testable.

As a developer working in a workspace, you are isolated from the changes being made by other developers.  You control when you want to accept changes from other developers by performing a get operation as appropriate.  Ideally when you do this, you'll update the entire configuration of source, and not just one or two files.  Why?  Because changes in one file typically depend on corresponding changes to other files, and you need to ensure that you've still got a consistent snapshot of source that is buildable and testable.

This is why the checkout operation doesn't perform a get latest on the files being checked out.  Updating that one file being checked out would violate the consistent snapshot philosophy and could result in a configuration of source that isn't buildable and testable.  As an alternative, Team Foundation forces users to perform the get latest operation at some point before they checkin their changes.  That's why if you attempt to checkin your changes, and you don't have the latest copy, you'll be prompted with the resolve conflicts dialog.

Thanks,
-Doug
dougn
Hi Doug,

Thanks for your answer. It is very clear to me. We are already working some time with TS and the 'designed problem' is not that big :) . It only cares for some conflicts when we forget to 'GetLatestVersion'.

However, I did not mention to get the latest version of my file to checkout. We would have liked TS to get all latest files to overcome some of the time consuming (but safe, thanks!) conflict resolving... I guess some more specification of the application parts to work on would be helpful ;) .

Greetings,

Bert Loedeman


Computers are made to solve problems you wouldn't have without them.
Bert Loedeman

Is there going to be an option in the final release of TFVC to enable automatic get latest on a checkout?

I have read the explanations why a Get Latest is not being done, by design, in TFVC.  This may sound realistic to you except that is not how real world developers always, categorically, need to work.  Also your rationale implies that .NET code is typically so intertwined and dependant on other modules that worry about dependencies is an overriding concern.  This sounds like bad software design you are worrying so much about.  We should be able to generally modify OOP code without continually creating a cascade of dependency changes.  Is that not the basic idea?

We are in the early construction phase of a large VS2K5 application.  We always need to work against the latest.  We are having much more problems and inconvenience with forgetting to Get Latest before a check out than any sort of dependency breakage problem as you suggest.  In my 8 years using VSS on numerous projects at numerous clients I have never encountered a situation where we did not automatically want to get latest almost always.  For your team to decide that everyone was doing it wrong before and force a global change in practice is simply a bad idea

Please give us a choice.  We saw an IDE script posted that supposedly would force a GL but we could not get it to work.




mmiller
hsiceo
I hear ya.  I'm not sure I totally agree with your statement about source file inter-dependencies resulting from bad software design, but I too have used VSS on many software projects without being bit by this issue.  In hind site, I wish we'd have made it optional.  We discussed it at the time, but we were always looking for ways to deliver our core value in a timely manner, and this option got cut as a result.

Unfortunately, it's too late to add it back into V1, but I promise you it's on the V2 list and I've heard enough complaints to be able to fight hard to make sure it stays there.  As always, thanks for the feedback.
dougn

A related but even more problematic issue is Get Latest doesn't always get the latest file if it "thinks" you already have the latest file... even if you don't!

This can cause horrific issues if not resolved. Yes if you know it is doing this and do "Get Specific Version", select latest version, select overwrite files and select force get, all of that will finally really do a get latest of what in VSS was as simple as selectiong "Get Latest" from the context menu. This is really painful and must be fixed.

WXS123
What do you mean by "fixed"? Do you want to make Force Get the default? There's probably a way to do that with a macro, but it will obviously be a lot slower.
Richard Berg MSFT

A related but even more problematic issue is Get Latest doesn't always get the latest file if it "thinks" you already have the latest file... even if you don't!

The only way that the case you mention would occur is if you physically opened up the folder containing the source code and deleted it. In that case, TFS on the server has no knowledge of your actions and still thinks that you have the most current versions of the files in your local cache. It is important to remember that unless TFS is allowed to manage the local cache, you will be at risk of seeing this behavior.

- Steve




http://sstjean.blogspot.com
Steve St.Jean
reply 10

You can use google to search for other answers

 

More Articles

SharePoint Portal... Web Parts Broken?
Is there a way to give new line in Tool tips?
bissubscribe error
Redirect to different Project Portal
Searching the repository...
"Remaining Work" report only shows active workitems
Team Explorer : External component has thrown an exception: Beta ...
.runconfig not picked up when excuting tests as part of a build
Code analysis during check-in
Compare differences between branches?
Welcome to Bokebb   New Update   Joins the collection  
 

New Articles

TFS Web service documentation
How do I add visual studio 2005 solution…
TFS and MS Project Field Mapping issues
BUG : WorkItem DateTime field causes crash
My Work Items
GCHandle exception when using work item …
Unable to edit Areas and Iterations in s…
GUI Change requires checkout of licenses…
WebTest with Team Build?
Team Foundation Server Trial Edition on …
Re: Why is TFS not available to Empower …
Office Integration
"Get" from Source Control Expl…
After you migrate a SourceSafe DB into T…
can not compare !!!

Hot Articles

TF output not conducive to efficient use…
Warehouse issue after upgrading to RTM
h get * /recursive
TFS - check repository integrity?
bug reporting through WSS
questions on iterations/classifications
build software over several solutions in…
TFS API: How do I list all users for a p…
Unknown Folder In TeamExpler when view e…
Team Build - Build Directory?
TFS Client Access License question
Upgrading TFS Workgroup Edition
command line "get"
Source Control (project file)
Checkout/in binaries either side of Team…

Recommend Articles

Configuring Unit Tests to Run in TFS Bui…
TF Beta 3 Compatible with VS 2005 RC1 ?
Team build and project references!
Another event log error
Permissions Error.
Project Portal Access to Agile Developme…
check in-out without Source Control perm…
Unable to map the same folder on several…
TFserver workgroup edition
TF30076: The server name (server) provi…
Bug in tf merges?
Area and Iteration not refreshed in Work…
Workgroup to Active Directory upgrade fo…
Can you please add so that linked workit…
Batch update work items