logging in or signing up Overview of SVN & CVS dkumar15 Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINT lite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 421 Category: Science & Tech.. License: All Rights Reserved Like it (0) Dislike it (0) Added: September 20, 2010 This Presentation is Public Favorites: 1 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Overview of SVN & CVS : Overview of SVN & CVS Deepak Kumar Software Configuration Management (SCM) : Software Configuration Management (SCM) SCM is the task of tracking and controlling the changes in the software configuration management practices. Software is concerned with answering the question, “Somebody did something, how can one reproduce it with a controlled incremental changes. Specifically, SCM ensures the integrity, reliability and reproducibility of developing S/W products from conception to release. Goals of SCM : Goals of SCM Configuration Identification Configuration Control Configuration Status Accounting Configuration Auditing Build Management Process Management Environment management Team Work Defect Management Understanding the Changes : Understanding the Changes Changes may happen due to different reasons. Some are planned and some are unplanned. Bug fixes found during testing. Correcting unanticipated consequences. Fixing customer complaint. Versioning Models : Versioning Models All version control systems have to solve the same fundamental problem: how will the system allow users to share information, but prevent them from accidentally stepping on each other‘s feet? It's all too easy for users to accidentally overwrite each other's changes in the repository. The problem of file-sharing The lock-modify-unlock solution The copy-modify-merge solution What does Subversion do? The problem of file-sharing : The problem of file-sharing The lock-modify-unlock solution : The lock-modify-unlock solution The copy-modify-merge solution : The copy-modify-merge solution Subversion (SVN) : Subversion (SVN) Subversion is a version control system that allow multiple people to work on a project at the same time. SVN is a system or tool that captures the changes to a source code element: files, folders, images or binaries. Subversion Control Benefits : Subversion Control Benefits Secure access to source code File history Facilitate team communication Baseline trace ability Automated merge capability Ensures no one overwrites someone else code Allows for a better control of parallel development Working Methodology of SVN : Working Methodology of SVN Subversion uses the copy-modify-merge solution by default, and in many cases this is all we will ever need. However, Subversion also supports file locking, so if we have unmerge able files, or if we are simply forced into a locking policy by management, Subversion will still provide the features we need. SVN works by maintaining a central repository, hosted on a server, that contains a canonical version of a file and allowing people to make local copies of that repository on their personal computer in a process called checkout. Each person has full control over their local copies and can propagate changes they made to their local copy back to repository in a process called Commit. Other people can see those changes when they update their local copy. Basic Subversion Control Concept : Basic Subversion Control Concept The Repository It is a central store of information in the form of a file – system tree –a typical hierarchy of files and directories. Any number of client can connect to the repository and then read or write to these files. What makes Subversion repository special is that it remembers every changes ever written to it: such as addition, deletion or rearrangement of files or directories. The Repository : The Repository Main Repository -> Project -> Files A Typical Client-Server Architecture : A Typical Client-Server Architecture TortoiseSVN : TortoiseSVN It is an open-source client for Subversion version control. That is, TortoiseSvn manages files and directories over time. Files are stored in central repository. The repository is much like an ordinary file server, except that it remembers every change ever made to your files and directories. In short, TortoiseSVN is a subversion client, implemented as a windows shell extension. Features of TortoiseSVN : Features of TortoiseSVN Shell integration Easy access to Subversion commands Powerful commit dialog Available in many language Integration with issue tracking system All Subversion protocols are supported http:// https:// Svn:// Svn+ssh:// file:/// svn+xxx:// Subversion in Action : Subversion in Action Working copies Repository URLs Revisions How working copies track the repository Graphical Representation of SVN : Graphical Representation of SVN TortoiseSVN : TortoiseSVN A small video to demonstrate the working of TortoiseSVN Siebel Version Control : Siebel Version Control We can integrate Siebel Version Control with Subversion with a batch file. This supports both Object level and Project level Checkin/checkout. Only drawback is comments inserted can be max of 9 words, to avoid exceeding this use ‘_’ between words Steps: 1. Install the Subversion Command line Client 2. Login in to Siebel tools. Navigate to View–>Options–>Checkin/Checkout 3. Check the Enable source control integration and Show execution of the integration batch file 4. Provide the path of the batch file Integration of TortoiseSVN with Siebel : Integration of TortoiseSVN with Siebel TortoiseMerge : TortoiseMerge TortoiseMerge is a free/open-source application. It lets you see differences in text files, merge those changes and even review and apply unified diff files, often called patches. If we're working with a version control system (e.g. Subversion) then you sometimes get conflicts when you update your working copy. This happens if someone else changed the same parts of the file we're currently working on as we did. Then we have to resolve those conflicts manually. This is where TortoiseMerge can help us. Concurrent Versioning System (CVS) : Concurrent Versioning System (CVS) CVS, or the Concurrent Versioning System, is a version control system. Version control systems are generally used as part of the software development cycle to track and co-ordinate source code changes among a team of developers. For example, bugs sometimes creep in when software is modified, and we might not detect the bug until a long time after we make the modification. With CVS, we can easily retrieve old versions to see exactly which change caused the bug. This can sometimes be a big help. TortoiseCVS : TortoiseCVS TortoiseCVS is a front-end client to make using CVS easier and more intuitive. It allows developers to work with files controlled by CVS directly from Windows Explorer. One of the major drawbacks of CVS is the command-line interface that is provided. Many developers today are becoming more accustomed to the graphical integrated development environments (IDEs). TortoiseCVS aims to provide that "point-and-click" environment in a clever and intuitive way. Note: TortoiseCVS is a client, not a server. Benefits of SVN over CVS : Benefits of SVN over CVS Subversion has several key benefits over CVS, a few of which are listed here... Subversion supports WEBDAV+DeltaV which works over HTTPS so that whole process of generating an SSH key is no longer necessary. Checkin are atomic (“all or nothing”). This helps keep a check-in error from causing a broken build. Subversion versions file and directory renames and moves. Branching and tagging are fast as they are implemented as a copy operation within the repository. Subversion uses a binary file format for your revision control data and metadata and if that format gets corrupted it also offers a non-database back end, for those who don't want the overhead of administering a database, as a result the whole team will not come to a halt. Cont… : Cont… Subversion ships with an integrity checker (svnadmin verify). It also attaches a checksum to every revision of every file. It verifies these checksums automatically at every opportunity where it wouldn't have a serious impact on performance; furthermore, it offers you the ability to paranoidly check integrity even more often, if you want to, via the abovementioned command. Branch management is actually one of Subversion's strengths. In Subversion, branches are first class, versioned objects, just like regular paths. They can be copied, renamed, deleted, and resurrected — and people do these things all the time. Drawbacks of Subversion : Drawbacks of Subversion Subversion is a new system which is supposed to replace CVS. Unfortunately, Subversion shares many of CVS' problems and introduced some of its own problems: Subversion has a single repository model, i.e., client/server. Each work area is clear text only which means no revision control in the work area during development. Subversion loses information every time there is parallel development because you are forced to merge before you check in if someone else checked in first. The state of your workspace before the merge is lost forever. Another way to say this is that if there is N-way parallel development, Subversion loses N-1 events. Merging in Subversion is no better than CVS, i.e., primitive at best. Subversion has only weak rename support, that's something that is inherent in all centralized systems. cont… : cont… No staging areas to protect the main source tree. With Subversion, everyone checks into the same place and if someone breaks the tree, it's broken for everyone. With BitKeeper, you can put a staging area between each group of developers and the main integration tree, thereby protecting the main tree from bad checkins. Anyone who has lived through a change that broke the build can see the value of staging areas. Note: Having a staging area is a matter of how the project organizes its repository and moderates its commits. The fact that some projects choose to use their main development trunk as their staging area, and release from branches, is a matter of policy, not of technical limitations. If you want to insert an extra level of staging area, Subversion supports that just fine. References : References http://haacked.com/archive/2006/02/22/QuickstartGuidetoSubversiononSourceForge.aspx http://subversion.tigris.org/bitmover-svn.html http://arwaheem.wordpress.com/2008/04/30/siebel-version-control-source-code-integration-using-sub-version/ TortoiseSVN User’s Guide TortoiseCVS User’s Guide Slide 30: Any Questions You do not have the permission to view this presentation. In order to view it, please contact the author of the presentation.
Overview of SVN & CVS dkumar15 Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINT lite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 421 Category: Science & Tech.. License: All Rights Reserved Like it (0) Dislike it (0) Added: September 20, 2010 This Presentation is Public Favorites: 1 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Overview of SVN & CVS : Overview of SVN & CVS Deepak Kumar Software Configuration Management (SCM) : Software Configuration Management (SCM) SCM is the task of tracking and controlling the changes in the software configuration management practices. Software is concerned with answering the question, “Somebody did something, how can one reproduce it with a controlled incremental changes. Specifically, SCM ensures the integrity, reliability and reproducibility of developing S/W products from conception to release. Goals of SCM : Goals of SCM Configuration Identification Configuration Control Configuration Status Accounting Configuration Auditing Build Management Process Management Environment management Team Work Defect Management Understanding the Changes : Understanding the Changes Changes may happen due to different reasons. Some are planned and some are unplanned. Bug fixes found during testing. Correcting unanticipated consequences. Fixing customer complaint. Versioning Models : Versioning Models All version control systems have to solve the same fundamental problem: how will the system allow users to share information, but prevent them from accidentally stepping on each other‘s feet? It's all too easy for users to accidentally overwrite each other's changes in the repository. The problem of file-sharing The lock-modify-unlock solution The copy-modify-merge solution What does Subversion do? The problem of file-sharing : The problem of file-sharing The lock-modify-unlock solution : The lock-modify-unlock solution The copy-modify-merge solution : The copy-modify-merge solution Subversion (SVN) : Subversion (SVN) Subversion is a version control system that allow multiple people to work on a project at the same time. SVN is a system or tool that captures the changes to a source code element: files, folders, images or binaries. Subversion Control Benefits : Subversion Control Benefits Secure access to source code File history Facilitate team communication Baseline trace ability Automated merge capability Ensures no one overwrites someone else code Allows for a better control of parallel development Working Methodology of SVN : Working Methodology of SVN Subversion uses the copy-modify-merge solution by default, and in many cases this is all we will ever need. However, Subversion also supports file locking, so if we have unmerge able files, or if we are simply forced into a locking policy by management, Subversion will still provide the features we need. SVN works by maintaining a central repository, hosted on a server, that contains a canonical version of a file and allowing people to make local copies of that repository on their personal computer in a process called checkout. Each person has full control over their local copies and can propagate changes they made to their local copy back to repository in a process called Commit. Other people can see those changes when they update their local copy. Basic Subversion Control Concept : Basic Subversion Control Concept The Repository It is a central store of information in the form of a file – system tree –a typical hierarchy of files and directories. Any number of client can connect to the repository and then read or write to these files. What makes Subversion repository special is that it remembers every changes ever written to it: such as addition, deletion or rearrangement of files or directories. The Repository : The Repository Main Repository -> Project -> Files A Typical Client-Server Architecture : A Typical Client-Server Architecture TortoiseSVN : TortoiseSVN It is an open-source client for Subversion version control. That is, TortoiseSvn manages files and directories over time. Files are stored in central repository. The repository is much like an ordinary file server, except that it remembers every change ever made to your files and directories. In short, TortoiseSVN is a subversion client, implemented as a windows shell extension. Features of TortoiseSVN : Features of TortoiseSVN Shell integration Easy access to Subversion commands Powerful commit dialog Available in many language Integration with issue tracking system All Subversion protocols are supported http:// https:// Svn:// Svn+ssh:// file:/// svn+xxx:// Subversion in Action : Subversion in Action Working copies Repository URLs Revisions How working copies track the repository Graphical Representation of SVN : Graphical Representation of SVN TortoiseSVN : TortoiseSVN A small video to demonstrate the working of TortoiseSVN Siebel Version Control : Siebel Version Control We can integrate Siebel Version Control with Subversion with a batch file. This supports both Object level and Project level Checkin/checkout. Only drawback is comments inserted can be max of 9 words, to avoid exceeding this use ‘_’ between words Steps: 1. Install the Subversion Command line Client 2. Login in to Siebel tools. Navigate to View–>Options–>Checkin/Checkout 3. Check the Enable source control integration and Show execution of the integration batch file 4. Provide the path of the batch file Integration of TortoiseSVN with Siebel : Integration of TortoiseSVN with Siebel TortoiseMerge : TortoiseMerge TortoiseMerge is a free/open-source application. It lets you see differences in text files, merge those changes and even review and apply unified diff files, often called patches. If we're working with a version control system (e.g. Subversion) then you sometimes get conflicts when you update your working copy. This happens if someone else changed the same parts of the file we're currently working on as we did. Then we have to resolve those conflicts manually. This is where TortoiseMerge can help us. Concurrent Versioning System (CVS) : Concurrent Versioning System (CVS) CVS, or the Concurrent Versioning System, is a version control system. Version control systems are generally used as part of the software development cycle to track and co-ordinate source code changes among a team of developers. For example, bugs sometimes creep in when software is modified, and we might not detect the bug until a long time after we make the modification. With CVS, we can easily retrieve old versions to see exactly which change caused the bug. This can sometimes be a big help. TortoiseCVS : TortoiseCVS TortoiseCVS is a front-end client to make using CVS easier and more intuitive. It allows developers to work with files controlled by CVS directly from Windows Explorer. One of the major drawbacks of CVS is the command-line interface that is provided. Many developers today are becoming more accustomed to the graphical integrated development environments (IDEs). TortoiseCVS aims to provide that "point-and-click" environment in a clever and intuitive way. Note: TortoiseCVS is a client, not a server. Benefits of SVN over CVS : Benefits of SVN over CVS Subversion has several key benefits over CVS, a few of which are listed here... Subversion supports WEBDAV+DeltaV which works over HTTPS so that whole process of generating an SSH key is no longer necessary. Checkin are atomic (“all or nothing”). This helps keep a check-in error from causing a broken build. Subversion versions file and directory renames and moves. Branching and tagging are fast as they are implemented as a copy operation within the repository. Subversion uses a binary file format for your revision control data and metadata and if that format gets corrupted it also offers a non-database back end, for those who don't want the overhead of administering a database, as a result the whole team will not come to a halt. Cont… : Cont… Subversion ships with an integrity checker (svnadmin verify). It also attaches a checksum to every revision of every file. It verifies these checksums automatically at every opportunity where it wouldn't have a serious impact on performance; furthermore, it offers you the ability to paranoidly check integrity even more often, if you want to, via the abovementioned command. Branch management is actually one of Subversion's strengths. In Subversion, branches are first class, versioned objects, just like regular paths. They can be copied, renamed, deleted, and resurrected — and people do these things all the time. Drawbacks of Subversion : Drawbacks of Subversion Subversion is a new system which is supposed to replace CVS. Unfortunately, Subversion shares many of CVS' problems and introduced some of its own problems: Subversion has a single repository model, i.e., client/server. Each work area is clear text only which means no revision control in the work area during development. Subversion loses information every time there is parallel development because you are forced to merge before you check in if someone else checked in first. The state of your workspace before the merge is lost forever. Another way to say this is that if there is N-way parallel development, Subversion loses N-1 events. Merging in Subversion is no better than CVS, i.e., primitive at best. Subversion has only weak rename support, that's something that is inherent in all centralized systems. cont… : cont… No staging areas to protect the main source tree. With Subversion, everyone checks into the same place and if someone breaks the tree, it's broken for everyone. With BitKeeper, you can put a staging area between each group of developers and the main integration tree, thereby protecting the main tree from bad checkins. Anyone who has lived through a change that broke the build can see the value of staging areas. Note: Having a staging area is a matter of how the project organizes its repository and moderates its commits. The fact that some projects choose to use their main development trunk as their staging area, and release from branches, is a matter of policy, not of technical limitations. If you want to insert an extra level of staging area, Subversion supports that just fine. References : References http://haacked.com/archive/2006/02/22/QuickstartGuidetoSubversiononSourceForge.aspx http://subversion.tigris.org/bitmover-svn.html http://arwaheem.wordpress.com/2008/04/30/siebel-version-control-source-code-integration-using-sub-version/ TortoiseSVN User’s Guide TortoiseCVS User’s Guide Slide 30: Any Questions