{"id":10791,"date":"2005-11-18T09:45:00","date_gmt":"2005-11-18T09:45:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/bharry\/2005\/11\/18\/why-tfs-labels-arent-like-sourcesafe-labels\/"},"modified":"2018-08-14T00:35:09","modified_gmt":"2018-08-14T00:35:09","slug":"why-tfs-labels-arent-like-sourcesafe-labels","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/bharry\/why-tfs-labels-arent-like-sourcesafe-labels\/","title":{"rendered":"Why TFS labels aren&#039;t like SourceSafe labels"},"content":{"rendered":"<p>I&#8217;m keeping my eye out for reasonable &#8220;short&#8221; blog topics as all of mine seem to be pretty long \ud83d\ude42&nbsp; There was a question today on one of our internal aliases about why labels in TFS don&#8217;t show up in the history display the way they do in SourceSafe.&nbsp; The originator was under the impression that labels were not available in the UI.&nbsp; Here&#8217;s my response:\nYou can get labels in the UI although not in history.&nbsp; When in the Source Control Explorer, you can use File -&gt; Source Control -&gt; Labels -&gt; Find Label.\nThe difference with SourceSafe is that they are not included in the history.&nbsp; There&rsquo;s a good reason for this.&nbsp; Labels in SourceSafe were always &ldquo;point in time&rdquo; labels.&nbsp; You generally labeled some tree at some point in time and that implied a label of all of the contents of the tree at the same point in time.&nbsp; In this respect it is reasonable to display labels in time sequence with history.&nbsp; Everything before it in the list is in the label and everything after it is not.&nbsp; This works for a significant percentage of label uses (and is a convenient way to think of them) but not all.\nIn Team Foundation, labels are more powerful.&nbsp; Instead of being a single point in time, they are able to have versions of each file in the label from different points in time.&nbsp; The canonical scenario is that you label a build and then find some bugs and want to go back change the versions of a few of the files (either omitting changes that introduced bugs or adding changes that fixed bugs).&nbsp; Now the label does not represent a point in time, but rather a collection of points in time.&nbsp; This makes it very hard to display it in a list mixed with change sets because there is not &ldquo;correct&rdquo; ordering of the list.&nbsp; As a result we treat the list of changesets and the list of labels separately.<\/p>\n<p>I&rsquo;m not comfortable that we&rsquo;ve made this discoverable enough or done enough to enable exploring and manipulating labels yet but that&rsquo;s a basic explanation why we can&rsquo;t just do what SourceSafe does.&nbsp; Expect in future versions to see us improve upon the user experience around these.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;m keeping my eye out for reasonable &#8220;short&#8221; blog topics as all of mine seem to be pretty long \ud83d\ude42&nbsp; There was a question today on one of our internal aliases about why labels in TFS don&#8217;t show up in the history display the way they do in SourceSafe.&nbsp; The originator was under the impression [&hellip;]<\/p>\n","protected":false},"author":244,"featured_media":14617,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-10791","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"acf":[],"blog_post_summary":"<p>I&#8217;m keeping my eye out for reasonable &#8220;short&#8221; blog topics as all of mine seem to be pretty long \ud83d\ude42&nbsp; There was a question today on one of our internal aliases about why labels in TFS don&#8217;t show up in the history display the way they do in SourceSafe.&nbsp; The originator was under the impression [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/posts\/10791","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/users\/244"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/comments?post=10791"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/posts\/10791\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/media\/14617"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/media?parent=10791"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/categories?post=10791"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/tags?post=10791"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}