{"id":620,"date":"2014-02-14T20:13:08","date_gmt":"2014-02-15T04:13:08","guid":{"rendered":"https:\/\/blogs.plm.automation.siemens.com\/t5\/Polarion-Blog\/5-Things-Most-Subversion-Users-Don-39-t-Know-Are-Even-Possible\/ba-p\/380809"},"modified":"2026-03-26T05:29:07","modified_gmt":"2026-03-26T09:29:07","slug":"5-things-most-subversion-users-dont-know-are-even-possible","status":"publish","type":"post","link":"https:\/\/blogs.sw.siemens.com\/polarion\/5-things-most-subversion-users-dont-know-are-even-possible\/","title":{"rendered":"5 Things Most Subversion Users Don&#039;t Know Are Even Possible"},"content":{"rendered":"<p>When <STRONG>Subversion<\/STRONG> came on the scene, it quickly became the market leading version control system, relegating all others to virtual obsolescence \u2014 something unprecedented for an open source product. But even as widespread as Subversion is today, most companies still have no idea about its potential to <STRONG>manage far more than just source code<\/STRONG>. If that&#8217;s all you&#8217;re using Subversion for, you&#8217;re definitely not leveraging all the power and potential SVN can deliver. Let&#8217;s look how you can <STRONG>get more from Subversion<\/STRONG>.<!--more--><br \/>\n<H2>The 5 Things Most Users Never Do With SVN<\/H2><br \/>\n<OL><br \/>\n\t<LI>Use SVN to track everything<\/LI><br \/>\n\t<LI>Use SVN to create and manage traceability<\/LI><br \/>\n\t<LI>Use SVN to control your development process<\/LI><br \/>\n\t<LI>Pull info from your SVN repo for reports<\/LI><br \/>\n\t<LI>Use SVN to unify your entire development organization<\/LI><br \/>\n<\/OL><br \/>\nLet&#8217;s look closer at each of these &#8220;missed opportunities&#8221;.<br \/>\n<H3>1. Track Everything<\/H3><br \/>\nYou know that SVN is great for versioning source code. So why stop there, as most people do? You can use Subversion to <STRONG>track every single artifact in your development process:<\/STRONG> requirements, defects\/issues, change requests, test cases, test execution results&#8230; what else have you got? You can track it with Subversion.<\/p>\n<p>Take <STRONG>requirements<\/STRONG>, for example&#8230; or User Stories if you use Scrum or another Agile development methodology&#8230; or whatever <EM>you<\/EM> call them. The most common practice is to commit entire specification documents to a SVN repo, mainly because that&#8217;s better than nothing.&nbsp;But people quickly discover that <STRONG>managing the inevitable change<\/STRONG> from inception through implementation <STRONG>is a pain<\/STRONG>. Change one requirement in a Word doc, and you have a new revision of the <EM>whole document.<\/EM> It&#8217;s a tedious chore to find out what content was changed, when, why, and by whom. Change seldom involves the entire specification. Usually it&#8217;s just one requirement, or a few. So wouldn&#8217;t it be much better if you could <STRONG>version each single requirement in the specification document<\/STRONG>? Subversion can in fact handle this, but most SVN users simply don&#8217;t realize it.<br \/>\n<DIV style=\"text-align: center;\"><A href=\"http:\/\/community.plm.automation.siemens.com\/legacyfs\/online\/siemensplm_blogs\/2013\/12\/change-in-word.png\" rel=\"nofollow noopener noreferrer\"><IMG class=\"alignnone size-full wp-image-4767\" alt=\"Requirement changed in Microsoft Word\" src=\"http:\/\/community.plm.automation.siemens.com\/legacyfs\/online\/siemensplm_blogs\/2013\/12\/change-in-word.png\" width=\"570\" height=\"391\" \/><\/A><br \/>\n<SPAN style=\"font-style: italic;\">Click image to enlarge<\/SPAN><\/DIV><br \/>\nThere are further difficulties with the &#8220;version the whole document&#8221; approach. What if you have a <STRONG>formal review and approval<\/STRONG> process? Assuming you get the right revision of the spec in front of all reviewers at the same time (which can be a good trick), you need to <STRONG>track who has reviewed<\/STRONG> which individual requirements and\/or the whole specification, <STRONG>who has approved or rejected<\/STRONG> which specific requirements (or the whole document)&#8230; and it would be good if you could <STRONG>capture comments<\/STRONG> when someone sends something back to the drawing board, wouldn&#8217;t it? Especially a year from now when you have to prove due diligence to a regulator in order to get e.g. your new medical device product approved for sale. The fact is: <STRONG>it&#8217;s possible to do all this with Subversion.&nbsp;<\/STRONG>We&#8217;ll talk about how later on.<br \/>\n<H3>2. Create Traceability<\/H3><br \/>\nLet&#8217;s say you have requirements for something you are developing. Let&#8217;s further suppose you have test cases that verify those requirements.&nbsp;Let&#8217;s jump still further into the realm of conjecture and say you are so far advanced as to be versioning each requirement and each test case in your Subversion repo. That&#8217;s super, but so far there&#8217;s <STRONG>no linking.<\/STRONG> You can&#8217;t show that <EM>this<\/EM> test case verifies <EM>that<\/EM> requirement (or <EM>those<\/EM> requirement<EM>s<\/EM>), or conversely, that <EM>this<\/EM> requirement is verified by <EM>that<\/EM> test case (or <EM>those<\/EM> test case<EM>s<\/EM>).<br \/>\n<DIV style=\"text-align: center; font-style: italic;\"><A href=\"http:\/\/community.plm.automation.siemens.com\/legacyfs\/online\/siemensplm_blogs\/2013\/12\/unlinked-artifacts.png\" rel=\"nofollow noopener noreferrer\"><IMG class=\"alignnone size-full wp-image-4786\" alt=\"Unlinked requirement and test case\" src=\"http:\/\/community.plm.automation.siemens.com\/legacyfs\/online\/siemensplm_blogs\/2013\/12\/unlinked-artifacts.png\" width=\"640\" height=\"240\" \/><\/A><br \/>\nArtifacts in SVN normally have no traceability. This can be remedied.<\/DIV><br \/>\nSame for any other relationships you might need to track&#8230; parent\/child, dependency, etc. Sounds like a <STRONG>database problem<\/STRONG>, doesn&#8217;t it? Certainly you <EM>could<\/EM> go that way&#8230; if you want to have <STRONG>yet another tool<\/STRONG> in the chain to be installed, administered, configured, maintained, etc. etc. <STRONG>Wouldn&#8217;t it be better if you could track this kind of information with Subversion?<\/STRONG> The good news is that you can. Traceability links, and the relationships they define, can be properties of any objects you manage in a Subversion repo. We&#8217;ll talk more about specifics later.<br \/>\n<H3>3. Control Process<\/H3><br \/>\nWorkflow is a hugely important issue with impact ranging from team productivity to the company&#8217;s ability to compete. Most companies invest heavily in creating the most efficient process they can. They must not only define it, but also ensure that people know what it is and how to follow it. And it&#8217;s nice to automate, where possible. In regulated industries, it&#8217;s vital to have the process well documented, and controlled to ensure that nothing is ever missed or skipped. Again, there&#8217;s lots of information involved.<\/p>\n<p>Imagine the benefits if that <STRONG>information could be leveraged in tools<\/STRONG> that would communicate about and <STRONG>guide people&#8217;s work<\/STRONG>&nbsp;so they don&#8217;t need to know the whole huge complex process, but just the steps they have to do. What if the same tools could <STRONG>track objects through the process<\/STRONG> so people always <STRONG>know the current status<\/STRONG> of both the objects (remember about requirements, tests, defects, etc.?), and the project as a whole?<br \/>\n<DIV style=\"text-align: center; font-style: italic;\"><A href=\"http:\/\/community.plm.automation.siemens.com\/legacyfs\/online\/siemensplm_blogs\/2013\/12\/polarion-workflow-control.png\" rel=\"nofollow noopener noreferrer\"><IMG class=\"alignnone size-full wp-image-4781\" alt=\"Polarion workflow control\" src=\"http:\/\/community.plm.automation.siemens.com\/legacyfs\/online\/siemensplm_blogs\/2013\/12\/polarion-workflow-control.png\" width=\"327\" height=\"270\" \/><\/A><br \/>\nUse SVN for workflow control. No need to know entire process&#8230; only possible next step(s)<\/DIV><br \/>\n<STRONG>And what if all that information could be handled by Subversion<\/STRONG>, which you already have and are comfortable hosting, administering, and using day to day? You may never have stopped to think that Subversion can be used as the central repository for this kind of information. But it can be. Again, we&#8217;ll see some solution specifics later.<br \/>\n<H3>4. Report From Your SVN Repo<\/H3><br \/>\nIt shouldn&#8217;t be much of a mental jump to realize that once you have the kind of information we&#8217;ve been discussing tracked in a Subversion repository, it will be possible to extract different pieces, combine them in different ways, and output some highly useful reports for teams, managers, customers, and other stakeholders. The possibilities are limited only by your imagination and programming skills. (Well, what your boss wants to see might enter into it occasionally too.) The bottom line is <EM>information<\/EM>. Once you have it, you can buy or build tools to manipulate it in whatever ways you need.<br \/>\n<DIV style=\"text-align: center;\"><A href=\"http:\/\/community.plm.automation.siemens.com\/legacyfs\/online\/siemensplm_blogs\/2013\/12\/report-from-svn-repo.png\" rel=\"nofollow noopener noreferrer\"><IMG class=\"alignnone size-full wp-image-4769\" alt=\"Report from data in Subversion repo\" src=\"http:\/\/community.plm.automation.siemens.com\/legacyfs\/online\/siemensplm_blogs\/2013\/12\/report-from-svn-repo.png\" width=\"570\" height=\"399\" \/><\/A><br \/>\n<SPAN style=\"font-style: italic;\">When data is in SVN, it can be reported in useful ways. (Click for larger image.)<\/SPAN><\/DIV><br \/>\nAnd when it comes to developing software applications (and many hardware applications as well), <STRONG>Subversion can be the repository for every kind of information<\/STRONG> you need for you development process. Which segues nicely into our final point&#8230;<br \/>\n<H3>5. Unify Your Development Organization<\/H3><br \/>\nAll too often, application and product development organizations end up with different functions in different, semi-isolated organizational islands. For example, one island conducts risk analysis and sends a document with their results to the island that develops requirements. On that island, there may be sub-islands for functional requirements and system requirements. The output of the requirements island (typically one or more specification documents&#8230; maybe actually versioned in SVN!) goes to the island that develops the application. That island may have a sub-island that develops and conducts tests (or that may be yet another autonomous isle).<br \/>\n<DIV style=\"text-align: center; font-style: italic;\"><IMG class=\"size-full wp-image-4665\" alt=\"Islands of application development\" src=\"http:\/\/community.plm.automation.siemens.com\/legacyfs\/online\/siemensplm_blogs\/2013\/12\/development-islands.png\" width=\"600\" height=\"326\" \/><br \/>\nA typical &#8220;islands&#8221; approach to application development<\/DIV><br \/>\nFrom a corporate management viewpoint, it can make sense to manage these islands separately. But in practical terms of getting product out the door (so revenues can flow in), <STRONG>this kind of separation usually makes life more difficult than it needs to be<\/STRONG> for all concerned. Let&#8217;s return to our core premise: that we can both store and track every kind of granular development artifact, along with its change history, its relationships to other artifacts, the process it is part of, and so on&#8230; <EM>all<\/EM> of this in Subversion (which you already have, right?)<\/p>\n<p>Once again, it&#8217;s no great mental leap to envision the possibility of a <STRONG>common development platform and tool set<\/STRONG> that could be used to get all those various silos working much more closely and efficiently together. The same platform would enable the Risk Management unit to create Risk Analysis specifications containing granular <EM>Risk<\/EM> artifacts that define a hazard, failure modes according to FMEA, etc. &#8211; all stored in Subversion. These would be accessible via the platform (obviously it should be <STRONG>web-based<\/STRONG>) making the risk analyses (and the current Head revision thereof) accessible to the Requirements Management unit.<\/p>\n<p>The Requirements unit works up the various functional and system requirements specifications, containing granular <EM>Requirement<\/EM> artifacts (or even subatomic types like <EM>Electrical Requirements<\/EM> or <EM>Hardware Requirements<\/EM>)&#8230; again, stored in SVN. Any of these can be linked via platform tools to any <EM>Risk<\/EM> artifact and the links stored in Subversion. <STRONG>Voil\u00e1 \u2014 <EM>traceability!<\/EM><\/STRONG><\/p>\n<p>You can probably envision the extensions yourself: <EM>Requirement<\/EM> artifacts linked to <EM>Test Case<\/EM> artifacts, <EM>Test Result<\/EM> artifacts that link to the <EM>Test Case<\/EM>s tested as well as <EM>Issue<\/EM> artifacts resulting from test failures&#8230; just to cite a very few of the huge realm of possibilities.<br \/>\n<DIV style=\"text-align: center;\"><A href=\"http:\/\/community.plm.automation.siemens.com\/legacyfs\/online\/siemensplm_blogs\/2013\/12\/traceability-with-svn-data.png\" rel=\"nofollow noopener noreferrer\"><IMG class=\"alignnone size-full wp-image-4773\" alt=\"Traceability created with data tracked in Subversion\" src=\"http:\/\/community.plm.automation.siemens.com\/legacyfs\/online\/siemensplm_blogs\/2013\/12\/traceability-with-svn-data.png\" width=\"709\" height=\"288\" \/><\/A><\/DIV><br \/>\nEvery unit creates their brand of artifacts, and can link them to artifacts created and managed by other units. The platform could easily present visualizations, reports. Users could query for information in real time. Managers could always see the actual status and progress of projects, with data pulled from the Head revisions in the underlying SVN repository. It should be clear by now that <STRONG>Subversion&#8217;s potential goes far beyond simple source code version control<\/STRONG>.<br \/>\n<H2>How To Make SVN Do All This?<\/H2><br \/>\nIf you&#8217;re still with us, you&#8217;re probably you&#8217;re asking yourself &#8220;OK, but <STRONG>how do we actually implement all this with Subversion?<\/STRONG>&#8221; Simple answer: <STRONG><EM>you<\/EM> don&#8217;t have to because <EM>we<\/EM>&nbsp;have done it for you.<\/STRONG> All of Polarion Software&#8217;s solutions for <A href=\"http:\/\/www.polarion.com\/products\/requirements\/index.php\" rel=\"nofollow noopener noreferrer\">Requirements Management<\/A>, <A href=\"http:\/\/www.polarion.com\/products\/qa\/index.php\" rel=\"nofollow noopener noreferrer\">Test Management<\/A>, and <A href=\"http:\/\/www.polarion.com\/products\/alm\/index.php\" rel=\"nofollow noopener noreferrer\">Application Lifecycle Management<\/A>, plus our vertical solutions for <A href=\"http:\/\/www.polarion.com\/products\/automotive\/functional-safety-iso-26262-automotive-spice-cmmi.php\" rel=\"nofollow noopener noreferrer\">Automotive<\/A>, <A href=\"http:\/\/www.polarion.com\/products\/medical\/index.php?utm_source=svnbenefits5&amp;utm_medium=web&amp;utm_campaign=blog\" rel=\"nofollow noopener noreferrer\">Medical Devices<\/A>, and <A href=\"http:\/\/www.polarion.com\/products\/agile-software-development\/index.php?utm_source=svnbenefits5&amp;utm_medium=web&amp;utm_campaign=blog\" rel=\"nofollow noopener noreferrer\">Agile Software Development<\/A>&#8230; <STRONG>all of them use Subversion in the ways discussed here, <\/STRONG>and other ways you may never have imagined possible. We can even do it in the <A href=\"http:\/\/www.polarion.com\/products\/cloud\/index.php?utm_source=svnbenefits5&amp;utm_medium=web&amp;utm_campaign=blog\" rel=\"nofollow noopener noreferrer\">Cloud<\/A>.<\/p>\n<p>You can either merge any existing SVN repo with the one integrated into Polarion, or you can continue to use 1 or more SVN repos to manage your code base, and let Polarion&#8217;s integrated repo handle everything else, including establishing traceability to revisions in your external source code repo(s). To find out more about what Polarion&#8217;s solutions deliver using SVN &#8220;under the hood&#8221; (or &#8220;beneath the bonnet&#8221;), check out these links:<br \/>\n<UL><br \/>\n\t<LI><A href=\"http:\/\/www.polarion.com\/products\/alm\/benefits.php?utm_source=svnbenefits5&amp;utm_medium=web&amp;utm_campaign=blog\" rel=\"nofollow noopener noreferrer\">Unify the Development Organization<\/A><\/LI><br \/>\n\t<LI><A href=\"http:\/\/www.polarion.com\/products\/alm\/benefits.php#traceability?utm_source=svnbenefits5&amp;utm_medium=web&amp;utm_campaign=blog\" rel=\"nofollow noopener noreferrer\">Traceability, Versioning and Audit Trails<\/A><\/LI><br \/>\n\t<LI><A href=\"http:\/\/www.polarion.com\/products\/alm\/benefits.php#workflow?utm_source=svnbenefits5&amp;utm_medium=web&amp;utm_campaign=blog\" rel=\"nofollow noopener noreferrer\">Process and Workflow Control<\/A><\/LI><br \/>\n\t<LI><A href=\"http:\/\/www.polarion.com\/products\/alm\/benefits.php#livereports?utm_source=svnbenefits5&amp;utm_medium=web&amp;utm_campaign=blog\" rel=\"nofollow noopener noreferrer\">Reporting<\/A><\/LI><br \/>\n<\/UL><br \/>\n<H2>How to Learn More<\/H2><br \/>\n<A href=\"http:\/\/almdemo.polarion.com\" rel=\"nofollow noopener noreferrer\"><IMG class=\"alignright size-thumbnail wp-image-4637\" alt=\"Learn the Basics - 15 minute guided tour of Polarion\" src=\"http:\/\/community.plm.automation.siemens.com\/legacyfs\/online\/siemensplm_blogs\/2013\/12\/tour15-150x150.png\" width=\"150\" height=\"150\" \/><\/A>If you&#8217;re intrigued by the potential for your development organization, then we highly recommend that you find <STRONG>15 minutes<\/STRONG> to take our video-based <STRONG>guided tour<\/STRONG> of <A href=\"http:\/\/almdemo.polarion.com\/\" rel=\"nofollow noopener noreferrer\">Polarion ALM on our live demo server<\/A>. You can create an account right from the login page. Come back as often as you like, explore sample projects, and even start your own. And as you take the tour, or explore the links above, remember one thing:<STRONG> <\/STRONG><br \/>\n<P style=\"text-align: center;\"><A href=\"http:\/\/www.polarion.com\/products\/alm\/benefits.php?utm_source=svnbenefits5banner&amp;utm_medium=web&amp;utm_campaign=blog\" rel=\"nofollow noopener noreferrer\"><IMG class=\"alignnone size-full wp-image-4641\" alt=\"Magician: all done with Subversion (Polarion)\" src=\"http:\/\/community.plm.automation.siemens.com\/legacyfs\/online\/siemensplm_blogs\/2013\/12\/polarion-all-done-with-subversion.jpg\" width=\"426\" height=\"328\" \/><\/A><\/P><br \/>\n<P style=\"font-size: 80%; font-style: italic;\">Robert Palomo and Jiri Walek contributed to this article.<br \/>\nSubversion and the Subversion logo are trademarks or registered trademarks of Apache Software Foundation.<\/P><\/p>\n<p><DIV id=\"cta\" style=\"text-align: center; margin: 32px 0; border-top: 1px solid #ccc; padding: 1em; font-size: 133%; font-weight: bold;\">GET THIS ARTICLE IN PDF:<br \/>\n<A href=\"http:\/\/www.polarion.com\/resources\/download.php?dl=5-things-most-subversion-users-dont-know.pdf&amp;utm_source=fiveunknownsvn&amp;utm_medium=web&amp;utm_campaign=blog\" rel=\"nofollow noopener noreferrer\"><IMG class=\"alignnone size-full wp-image-4918\" alt=\"Banner Image:  5 Things Most Subversion Users Don't Know Are Even Possible\" src=\"http:\/\/community.plm.automation.siemens.com\/legacyfs\/online\/siemensplm_blogs\/2013\/12\/polarion-5-things-subversion-users-dont-know.jpg\" width=\"660\" height=\"135\" \/><\/A><\/DIV><br \/>\n<P style=\"font-style: italic; font-size: 80%; line-height: normal; text-align: right;\">Photos: Flickr\/<A href=\"http:\/\/www.flickr.com\/photos\/bohman\/\" rel=\"nofollow noopener noreferrer\">Linus Bohman<\/A>, <A href=\"http:\/\/www.flickr.com\/photos\/34841109@N03\/\" rel=\"nofollow noopener noreferrer\">Eric Harrison<\/A>, <A href=\"http:\/\/www.flickr.com\/photos\/boene75\/\" rel=\"nofollow noopener noreferrer\">BOENE75<\/A><\/P><\/p>\n","protected":false},"excerpt":{"rendered":"<p>When Subversion came on the scene, it quickly became the market leading version control system, relegating all others to virtual obsolescence \u2014 something unprecedented for an open source product. But&#8230;<\/p>\n","protected":false},"author":57253,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spanish_translation":"","french_translation":"","german_translation":"","italian_translation":"","polish_translation":"","japanese_translation":"","chinese_translation":"","footnotes":""},"categories":[1],"tags":[],"industry":[],"product":[],"coauthors":[],"class_list":["post-620","post","type-post","status-publish","format-standard","hentry","category-news"],"_links":{"self":[{"href":"https:\/\/blogs.sw.siemens.com\/polarion\/wp-json\/wp\/v2\/posts\/620","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.sw.siemens.com\/polarion\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.sw.siemens.com\/polarion\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/polarion\/wp-json\/wp\/v2\/users\/57253"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/polarion\/wp-json\/wp\/v2\/comments?post=620"}],"version-history":[{"count":1,"href":"https:\/\/blogs.sw.siemens.com\/polarion\/wp-json\/wp\/v2\/posts\/620\/revisions"}],"predecessor-version":[{"id":621,"href":"https:\/\/blogs.sw.siemens.com\/polarion\/wp-json\/wp\/v2\/posts\/620\/revisions\/621"}],"wp:attachment":[{"href":"https:\/\/blogs.sw.siemens.com\/polarion\/wp-json\/wp\/v2\/media?parent=620"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/polarion\/wp-json\/wp\/v2\/categories?post=620"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/polarion\/wp-json\/wp\/v2\/tags?post=620"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/polarion\/wp-json\/wp\/v2\/industry?post=620"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/polarion\/wp-json\/wp\/v2\/product?post=620"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/polarion\/wp-json\/wp\/v2\/coauthors?post=620"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}