How and where does TFS 2008 / TFS 2010 store changes?

I am trying to understand how TFS 2008 (and 2010, if different) stores and links the details of a change set to a change set.

Now, when I take on the Subversion project, the client sends the differences to the server. So if I added a file and changed a few lines in another, it sends something like โ€œAdded A.txt file, put 2 lines ofโ€œ A โ€œBโ€ in B.txt. โ€This means that I can cancel the revision, since diffs are beautifully reversible - โ€œDelete the A.txt file and pull the two lines out of B.txt.โ€ It's pretty accurate that this is the same with git.

I have the feeling that TFS does not store changes in this way (based on rumors and the fact that I cannot easily cancel revisions, etc.).

I believe this: If I changed the files A, B and C inside the change set, then what is actually stored in the change set is a completely new copy of the files A, B, C. Not only the differences.

Am I correct in this assumption? As a commercial software, I could well believe that this information is not available, but I thought I would ask because googling did not create anything!

As a result: where are the TFS change tables stored? I know that SQL server is used for some repositories ... changsets too?

We are currently using TFS 2008, but it would also be useful to know the answer for 2010, as I think there are plans to upgrade.

+6
source share
1 answer

TFS stores all changeset data in a SQL Server database. It stores code from the most recent set of changes in its entirety. Then it saves the diff in the previous version. One of the advantages of storing all this in SQL Server is that it gets the ability to save all or nothing provided by transactions.

Regarding the WHERE that he saved, you can check this blog entry http://blogs.msdn.com/b/bharry/archive/2009/04/19/team-foundation-server-2010-key-concepts.aspx

+11
source

Source: https://habr.com/ru/post/891964/


All Articles