{"id":235,"date":"2006-12-06T16:24:00","date_gmt":"2006-12-06T16:24:00","guid":{"rendered":"https:\/\/ahm.basfinans.com\/index.php\/2006\/12\/06\/software-version-control-subversion-installation-and-configuration\/"},"modified":"2006-12-06T16:24:00","modified_gmt":"2006-12-06T16:24:00","slug":"software-version-control-subversion-installation-and-configuration","status":"publish","type":"post","link":"https:\/\/ahm.basfinans.com\/index.php\/2006\/12\/06\/software-version-control-subversion-installation-and-configuration\/","title":{"rendered":"Software Version Control &#8211; Subversion- Installation and Configuration"},"content":{"rendered":"<p>>> There is a bug in Microsoft Internet Explorer 6.0, this article is best viewed with <a href=\"http:\/\/www.mozilla.com\/en-US\/firefox\/\">FireFox<\/a><a href=\"http:\/\/www.mozilla.com\/en-US\/firefox\/\"> 2.0<\/a><\/p>\n<p><o:p><\/o:p><\/p>\n<p dir=\"ltr\" style=\"text-align: center; direction: ltr; unicode-bidi: embed;\"><a href=\"http:\/\/4.bp.blogspot.com\/_MWBL1bjt7-k\/RY1m6Gp0PTI\/AAAAAAAAABU\/twugMhG2oRA\/s1600-h\/subversion.png\"><img decoding=\"async\" style=\"cursor: pointer;\" src=\"http:\/\/4.bp.blogspot.com\/_MWBL1bjt7-k\/RY1m6Gp0PTI\/AAAAAAAAABU\/twugMhG2oRA\/s320\/subversion.png\" alt=\"\" id=\"BLOGGER_PHOTO_ID_5011775108737678642\" border=\"0\" \/><\/a><\/p>\n<p> Software Configuration Management (SCM) in Roger  Pressman book Software Engineering: A Practitioner&#8217;s Approach, says that software configuration manage ment (SCM) is a &#8220;set of activities designed to control change by identifying the work products that are likely to change, <span>establishing relationships among them, defining mechanisms for managing different versions of these work products, controlling the changes imposed, and auditing and reporting on the changes made.&#8221;. In other words, SCM is a methodology to control and manage a software development project.<span dir=\"rtl\" lang=\"AR-SA\"><o:p><\/o:p><\/span> <\/p>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\">SCM concerns itself with answering the question: somebody did something, how can one reproduce it? Often the problem involves not reproducing &#8220;it&#8221; identically, but with controlled, incremental changes. Answering the question will thus become a matter of comparing different results and of analyzing their differences. Traditional CM typically focused on controlled creation of relatively simple products. Nowadays, implementators of SCM face the challenge of dealing with relatively minor <\/p>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\">increments under their own control, in the context of the complex system being developed.<\/p>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\">A corner stone tool to start with is the revision control system, so in this article we will focus on it and explain its installation and configuration.<o:p> <\/o:p><\/p>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\">Revision control &#8211; also known as version control &#8211; is the management of multiple revisions of the same unit of information. It is used to manage ongoing development of digital documents like application source code, art resources or design and architecture do<\/p>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\">cuments. Changes to these documents are identified by incrementing an associated number, termed the &#8220;revision number&#8221; and associated historically with the person making the change. A simple form of revision control, for example, has the initial issue of a drawing assigned the revision number &#8220;1&#8221;. When the first change is made, the revision number is incremented to &#8220;2&#8221; and so on.<span dir=\"rtl\" lang=\"AR-SA\"><o:p> <\/o:p><\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\">Software tools for revision control are increasingly recognized as being necessary for software development projects, not to manage only source code, but also for all software artifacts.<\/p>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\">We introduce one of the best revision control system, Subversion, and will make guidance on how to install, configure and use effectively. In general use subversion \u2013SVN \u2013 to control any document, which is text based or even binary files, in the case of text files you will be able to use tools to show revisions differences.<o:p> <\/o:p><\/p>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\"><b>Subversion Basic Features:  <!--[endif]--><o:p><\/o:p><\/b><\/p>\n<p> <!--[if !supportLists]--> <\/p>\n<ul>\n<li><span dir=\"ltr\">Open source. Being open source does not mean low quality; it is a commercial quality system.<\/span><\/li>\n<li><span dir=\"ltr\">Multiplatform, Windows, Linux, and many other.<\/span><\/li>\n<li><span dir=\"ltr\">Commits are truly atomic operations. Interrupted commit operations do not cause repository inconsistency or corruption.<\/span><\/li>\n<li><span dir=\"ltr\">Renamed\/copied\/moved\/removed files retain full revision history.<\/span><\/li>\n<li><span dir=\"ltr\">Directories, renames, and file metadata are versioned. Entire directory trees can be moved around <\/span><span dir=\"ltr\">and\/or copied very quickly, and retain full revision history.<\/span><\/li>\n<li><span style=\"font-family:Symbol;\"><span style=\"\"><span style=\"\">     <\/span><\/span><\/span><span dir=\"ltr\">Native support for binary files, with space-efficient binary-diff storage.<\/span><\/li>\n<li><span dir=\"ltr\">Apache HTTP server as network server, WebDAV\/DeltaV for protocol. There is also an independent server process that uses a custom protocol over TCP\/IP.<\/span><\/li>\n<li><span dir=\"ltr\">Branching and tagging are cheap (constant time) operations.<\/span><\/li>\n<li><span dir=\"ltr\">Natively client\/server.<\/span><\/li>\n<li><span dir=\"ltr\">Client\/server protocol sends diffs in both directions, so costs are proportional to change size, not data size.<\/span><\/li>\n<li><span dir=\"ltr\">File locking for un<\/span><span dir=\"ltr\">mergeable files (&#8220;reserved checkouts&#8221;).<\/span><\/li>\n<\/ul>\n<p> <!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--><!--[if !supportLists]--><!--[endif]--> <\/p>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\"><o:p> <\/o:p><\/p>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\">We will use RapidSVN as a multiplatform Subversion client tool, see Fig 1, keep in mind that this is a personal choice, more than 20 client tool and IDE plug-in are available at <a href=\"http:\/\/subversion.tigris.org\/links.html\">http:\/\/subversion.tigris.org\/links.html<\/a><\/p>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\"><o:p> <\/o:p><\/p>\n<div style=\"text-align: center;\"><!--[if gte vml 1]><v:shapetype coordsize=\"21600,21600\" spt=\"75\" preferrelative=\"t\" path=\"m@4@5l@4@11@9@11@9@5xe\" filled=\"f\" stroked=\"f\">  <v:stroke joinstyle=\"miter\">  <v:formulas>   <v:f eqn=\"if lineDrawn pixelLineWidth 0\">   <v:f eqn=\"sum @0 1 0\">   <v:f eqn=\"sum 0 0 @1\">   <v:f eqn=\"prod @2 1 2\">   <v:f eqn=\"prod @3 21600 pixelWidth\">   <v:f eqn=\"prod @3 21600 pixelHeight\">   <v:f eqn=\"sum @0 0 1\">   <v:f eqn=\"prod @6 1 2\">   <v:f eqn=\"prod @7 21600 pixelWidth\">   <v:f eqn=\"sum @8 21600 0\">   <v:f eqn=\"prod @7 21600 pixelHeight\">   <v:f eqn=\"sum @10 21600 0\">  <\/v:formulas>  <v:path extrusionok=\"f\" gradientshapeok=\"t\" connecttype=\"rect\">  <o:lock ext=\"edit\" aspectratio=\"t\"> <\/v:shapetype><v:shape type=\"#_x0000_t75\" style=\"'width:414.75pt;\">  <v:imagedata src=\"file:\/\/\/C:DOCUME~1ahamadLOCALS~1Tempmsohtml1\u00001clip_image001.png\" title=\"\"> <\/v:shape><![endif]--><!--[if !vml]--> <a href=\"http:\/\/3.bp.blogspot.com\/_MWBL1bjt7-k\/RY1nM2p0PUI\/AAAAAAAAABc\/kAmQgBrMrXc\/s1600-h\/rapidsvn1.png\"><img decoding=\"async\" style=\"cursor: pointer;\" src=\"http:\/\/3.bp.blogspot.com\/_MWBL1bjt7-k\/RY1nM2p0PUI\/AAAAAAAAABc\/kAmQgBrMrXc\/s400\/rapidsvn1.png\" alt=\"\" id=\"BLOGGER_PHOTO_ID_5011775430860225858\" border=\"0\" \/><\/a><\/div>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\" align=\"center\"><!--[endif]--><\/p>\n<p dir=\"ltr\" style=\"text-align: center; direction: ltr; unicode-bidi: embed;\" align=\"center\"><b>Fig 1<o:p><\/o:p><\/b><\/p>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\"><o:p> <\/o:p><\/p>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\"><o:p> <\/o:p><\/p>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\">In order to help you introduce Subversion in your work, I will show steps of installation, configuration and basic use, I will cover only Windows-based installation.<\/p>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\"><o:p> <\/o:p><\/p>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\"><b>Download and Install:  <!--[if !supportLineBreakNewLine]-->  <!--[endif]--><o:p><\/o:p><\/b><\/p>\n<ol style=\"margin-top: 0in;\" start=\"1\" type=\"1\">\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\">Download subversion client\/server software from <a href=\"http:\/\/subversion.tigris.org\/files\/documents\/15\/32473\/svn-win32-1.3.2.zip\">http:\/\/subversion.tigris.org\/files\/documents\/15\/32473\/svn-win32-1.3.2.zip<\/a><\/li>\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\">Install the downloaded file to <u>c:subversion<\/u><\/li>\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\">Add     <u>c:subversionbin<\/u> to the Windows <u>PATH<\/u> variable.<\/li>\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\">Download RapidSVN from <a href=\"http:\/\/rapidsvn.tigris.org\/\">http:\/\/rapidsvn.tigris.org\/<\/a><\/li>\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\">Install RapidSVN to any place in your hard disk, and keep its icon reachable.<\/li>\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\">Run RapidSVN and explore it a little to be familiar with.<\/li>\n<\/ol>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\"><o:p> <\/o:p><\/p>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\"><b>Configure and Use:  <!--[if !supportLineBreakNewLine]-->  <!--[endif]--><o:p><\/o:p><\/b><\/p>\n<ol style=\"margin-top: 0in;\" start=\"1\" type=\"1\">\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\">We simply create a repository per project.<\/li>\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\">Create a root folder for all your repositories, create <u>c:svnrepos<\/u><\/li>\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\">Create initial repository:<br \/>Open command shell, and run <u><br \/>svnadmin create c:svnreposproject1<\/u>.<\/li>\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\">Open Command prompt, run the server by running the command<br \/><u>svnserve -d -r c:svnrepos<\/u><br \/>this means you want to run the svnserve as a daemon to serve repositories under c:svnrepos. <\/li>\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\">open     <u>svnserve.conf<\/u> under <u>c:svnreposproject1conf<\/u> , remove the comment from the following lines:<br \/>[general]<br \/>auth-access = write<br \/>password-db = passwd<\/li>\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\">Open     <u>passwd<\/u> under <u>c:svnreposproject1conf<\/u>, uncomment the following lines:<br \/>[users]<br \/>ahmed=pass1<br \/>aly=pass2\n<p>add users in the format that user=password, as shown above.<br \/>There exist many options in authorization and authentication, see references section for additional documents.<\/li>\n<\/ol>\n<p dir=\"ltr\" style=\"margin-left: 0.25in; text-align: left; direction: ltr; unicode-bidi: embed;\"><o:p> <\/o:p><\/p>\n<p dir=\"ltr\" style=\"margin-left: 0.25in; text-align: left; direction: ltr; unicode-bidi: embed;\"><b>Check out a version from the repository:  <!--[if !supportLineBreakNewLine]-->  <!--[endif]--><o:p><\/o:p><\/b><\/p>\n<p dir=\"ltr\" style=\"margin-left: 0.75in; text-align: left; text-indent: -0.25in; direction: ltr; unicode-bidi: embed;\"><!--[if !supportLists]--><span style=\"\">1.<span style=\"\">      <\/span><\/span><!--[endif]--><span dir=\"ltr\">Run RapidSVN.<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-left: 0.75in; text-align: left; text-indent: -0.25in; direction: ltr; unicode-bidi: embed;\"><!--[if !supportLists]--><span style=\"\">2.<span style=\"\">      <\/span><\/span><!--[endif]--><span dir=\"ltr\">Press Ctrl-&gt;O write <u>svn:\/\/192.168.0.79\/project<\/u><\/span><span dir=\"ltr\"><u>1<\/u> in URL field, (I assume the server machine IP is 192.168.0.79), write Destination Directory, I assume <u>c:projectsproject1<\/u>, then press <b>OK.<\/b><\/span><\/p>\n<p dir=\"ltr\" style=\"margin-left: 0.25in; text-align: left; direction: ltr; unicode-bidi: embed;\"><b><o:p> <\/o:p><\/b><\/p>\n<p dir=\"ltr\" style=\"margin-left: 0.25in; text-align: left; direction: ltr; unicode-bidi: embed;\"><b>Add Files:  <!--[if !supportLineBreakNewLine]-->  <!--[endif]--><\/b><\/p>\n<p dir=\"ltr\" style=\"margin-left: 0.75in; text-align: left; text-indent: -0.25in; direction: ltr; unicode-bidi: embed;\"><!--[if !supportLists]--><span style=\"\">1.<span style=\"\">      <\/span><\/span><!--[endif]--><span dir=\"ltr\">Create new file, name it file.txt, write the statement <u>This is version 1<\/u>, save the file, copy it under <u>c:projectsproject1<\/u> . Open RapdSVN, open the bookmark added previously, you will see the file status <u>unversioned<\/u>, right clic<\/span><span dir=\"ltr\">k the file and select <u>Add<\/u> command. Now the file status is <u>added,<\/u> but the Rep. Rev. is -1. This means that you still have to commit the file in order to add it to the repository, right click the file and select <u>Commit\u2026<\/u>, now the file status is empty. And Rep. Rev. is 1.<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-left: 0.75in; text-align: left; text-indent: -0.25in; direction: ltr; unicode-bidi: embed;\"><!--[if !supportLists]--><span style=\"\">2.<span style=\"\">      <\/span><\/span><!--[endif]--><span dir=\"ltr\">Open the <u>file1.txt<\/u> in any text editor, add second line as following <u>This is text line number 2.<\/u> Save the file. In ReapidSVN the Status is <u>modified<\/u>. To commit the file to the repository, right click and select <u>Commit\u2026<\/u>, you will be authenticated, write matching user name and password that match one that is created in <u>passwd<\/u> file, after OK, the Rep. Rev. is now 2.<\/span><\/p>\n<p dir=\"ltr\" style=\"margin-left: 0.25in; text-align: left; direction: ltr; unicode-bidi: embed;\"><o:p> <\/o:p><\/p>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\"><o:p> <\/o:p><\/p>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\"><b>Text Viewing, Differences and Merges:<\/b><\/p>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\"><o:p> <\/o:p><\/p>\n<ol style=\"margin-top: 0in;\" start=\"1\" type=\"1\">\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\">For text files viewing, you can use Notepad++ from <a href=\"http:\/\/notepad-plus.sourceforge.net\/uk\/site.htm\">http:\/\/notepad-plus.sourceforge.net\/uk\/site.htm<\/a>, you can also use Porgrammers Notepad at <a href=\"http:\/\/www.pnotepad.org\/\">http:\/\/www.pnotepad.org\/<\/a>. Both are open source and good quality.<\/li>\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\">For text files differences and merge tool, WinMerge is an excellent tool, download from <a href=\"http:\/\/winmerge.sourceforge.net\/\">http:\/\/winmerge.sourceforge.net\/<\/a><\/li>\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\">In RapidSVN, select <u>View<\/u> &gt; <u>Preferences<\/u> and select <u>Programs<\/u> tab, adjust the path of <u>Standard Editor<\/u> and <u>Diff Tool<\/u> as shown in Fig 2.<\/li>\n<\/ol>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\"><o:p> <\/o:p><\/p>\n<div align=\"center\"><a href=\"http:\/\/1.bp.blogspot.com\/_MWBL1bjt7-k\/RY1ndWp0PVI\/AAAAAAAAABk\/ZEwGYsNFlcU\/s1600-h\/rapidsvn2.png\"><img decoding=\"async\" style=\"cursor: pointer;\" src=\"http:\/\/1.bp.blogspot.com\/_MWBL1bjt7-k\/RY1ndWp0PVI\/AAAAAAAAABk\/ZEwGYsNFlcU\/s400\/rapidsvn2.png\" alt=\"\" id=\"BLOGGER_PHOTO_ID_5011775714328067410\" border=\"0\" \/><\/a><o:p> <\/o:p><br \/><o:p><\/o:p><\/div>\n<p dir=\"ltr\" style=\"text-align: center; direction: ltr; unicode-bidi: embed;\" align=\"center\"><!--[if gte vml 1]><v:shape type=\"#_x0000_t75\" style=\"'width:255pt;height:343.5pt'\">  <v:imagedata src=\"file:\/\/\/C:DOCUME~1ahamadLOCALS~1Tempmsohtml1\u00001clip_image003.png\" title=\"\"> <\/v:shape><![endif]--><!--[if !vml]--> <!--[endif]--><\/p>\n<p dir=\"ltr\" style=\"margin-left: 0.25in; text-align: center; direction: ltr; unicode-bidi: embed;\" align=\"center\">Fig 2<\/p>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\">The following guidelines are our practical experience that helped us to use subversion properly in a way that helps us make our source code versions manageable.<\/p>\n<ol style=\"margin-top: 0in;\" start=\"1\" type=\"1\">\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\">Update frequently as much as you can, commit on average daily. In case of any conflict consult software team leader and other team members, in 95% of cases you can resolve the conflict safely without any guidance.<\/li>\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\">Commit each logical unit of change separately, as example if you are going to fix three bugs, commit each bug separately, this will ease changes tracking.<\/li>\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\">On every commit, write detailed notes.<\/li>\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\">Don&#8217;t ever commit code that breaks the build.<\/li>\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\">Don&#8217;t change any code that you don&#8217;t own without consultation to the code owner.<\/li>\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\">Before committing run self-test-procedure for your changes.<\/li>\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\">Use WinMerge always to review changes carefully before each commit.<\/li>\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\">Don&#8217;t put generated files into version control, put only source files whatever it is textual or binary files like images or word document.<\/li>\n<\/ol>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\"><o:p> <\/o:p><\/p>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\"><b>References:<o:p><\/o:p><\/b><\/p>\n<ol style=\"margin-top: 0in;\" start=\"1\" type=\"1\">\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\"><a href=\"http:\/\/subversion.tigris.org\/\">http:\/\/subversion.tigris.org<\/a><\/li>\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\"><a href=\"http:\/\/rapidsvn.tigris.org\/\">http:\/\/rapidsvn.tigris.org<\/a><\/li>\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\"><a href=\"http:\/\/notepad-plus.sourceforge.net\/\">http:\/\/notepad-plus.sourceforge.net\/<\/a><\/li>\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\"><a href=\"http:\/\/www.pnotepad.org\/\">http:\/\/www.pnotepad.org<\/a><\/li>\n<li dir=\"ltr\" style=\"margin-right: 0in; margin-left: 0.5in; text-align: left; direction: ltr; unicode-bidi: embed;\"><a href=\"http:\/\/winmerge.sourceforge.net\/\">http:\/\/winmerge.sourceforge.net<\/a><\/li>\n<\/ol>\n<p dir=\"ltr\" style=\"margin-left: 0.25in; text-align: left; direction: ltr; unicode-bidi: embed;\"><o:p> <\/o:p><\/p>\n<p dir=\"ltr\" style=\"margin-left: 0.25in; text-align: left; direction: ltr; unicode-bidi: embed;\"><o:p> <\/o:p><\/p>\n<p dir=\"ltr\" style=\"margin-left: 0.25in; text-align: left; direction: ltr; unicode-bidi: embed;\"><o:p> <\/o:p><\/p>\n<p dir=\"ltr\" style=\"margin-left: 0.25in; text-align: left; direction: ltr; unicode-bidi: embed;\"><o:p> <\/o:p><\/p>\n<p dir=\"ltr\" style=\"text-align: left; direction: ltr; unicode-bidi: embed;\"><o:p> <\/o:p><\/p>\n<p><\/span><\/p>\n<div>From ahm507.blogspot.com<\/div>\n","protected":false},"excerpt":{"rendered":"<p>>> There is a bug in Microsoft Internet Explorer 6.0, this article is best viewed with FireFox 2.0 Software Configuration Management (SCM) in Roger Pressman book Software Engineering: A Practitioner&#8217;s Approach, says that software configuration manage ment (SCM) is a &#8220;set of activities designed to control change by identifying the work products that are likely [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[],"_links":{"self":[{"href":"https:\/\/ahm.basfinans.com\/index.php\/wp-json\/wp\/v2\/posts\/235"}],"collection":[{"href":"https:\/\/ahm.basfinans.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ahm.basfinans.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ahm.basfinans.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ahm.basfinans.com\/index.php\/wp-json\/wp\/v2\/comments?post=235"}],"version-history":[{"count":0,"href":"https:\/\/ahm.basfinans.com\/index.php\/wp-json\/wp\/v2\/posts\/235\/revisions"}],"wp:attachment":[{"href":"https:\/\/ahm.basfinans.com\/index.php\/wp-json\/wp\/v2\/media?parent=235"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ahm.basfinans.com\/index.php\/wp-json\/wp\/v2\/categories?post=235"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ahm.basfinans.com\/index.php\/wp-json\/wp\/v2\/tags?post=235"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}