|
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 ). 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 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 |
|