Getting Started W Ith CVS

Total Page:16

File Type:pdf, Size:1020Kb

Getting Started W Ith CVS Getting Started W ith CVS An Oracle White Paper February 2005 Getting Started W ith CVS Introduction....................................................................................................... 3 W HAT IS CVS.................................................................................................. 3 terminology........................................................................................................ 3 CVS Step by step............................................................................................... 4 Downloading and Installing CVS............................................................... 4 Creating a Repository................................................................................... 5 Creating a CVS Connection........................................................................ 5 Configuring the Repository......................................................................... 6 Importing a Module...................................................................................... 7 Checking Out a Module............................................................................... 9 Adding Files................................................................................................... 9 Updating Files (Common)......................................................................... 10 Editing Files................................................................................................. 11 Deleting Files............................................................................................... 11 Committing Files......................................................................................... 12 Comparing Files.......................................................................................... 13 Merging Files............................................................................................... 14 Renaming Files............................................................................................ 14 View Revisions............................................................................................ 14 Tagging Files................................................................................................ 15 Updating Files (Special)............................................................................. 15 Retrieving Deleted Files............................................................................. 16 OTHER CVS CLIENTS............................................................................... 16 TortoiseCVS................................................................................................ 16 W inCVS........................................................................................................ 17 SUBVERSION: THE BETTER CVS......................................................... 18 More Information............................................................................................ 18 White Paper Title Page 2 Getting Started W ith CVS INTRODUCTION Are you in need of a tool that supports a structured way of sharing sources between developers? Or do you want to have the ability to exactly know what files you changed at some point in time, and perhaps be able to revert changes you have made? Than read on and find out how CVS can help you out and find out how CVS integrates with JDeveloper 10.1.2. WHAT IS CVS CVS stands for Concurrent Versions System and is a so-called version control system. A version control system is used to keep several versions of a set of files, typically source code, in a repository. The files kept in the repository can be shared between developers, allowing them to see who is editing what files, what changes have been made by who, when and why that happened. You can revert to a previous version when necessary. The repository can reside anywhere on the network, which might be your local computer. So you can use a local, private repository when there is no need to share it with other developers. TERMINOLOGY The CVS repository can contain one or more modules. A module basically is a folder structure, typically containing all (source code) files of one specific project. To create a module, the folder structure and the files in it need to be uploaded from the file system into the repository. This upload (that is the creation of a module) is called an import. From the moment a file has been uploaded into the repository, it is said it has been put “under version control”. Before you can work with a module locally, you need to retrieve it from the repository by doing a checkout. Unlike some other version control systems, checking out a module with CVS has nothing to do with locking or flagging files as being edited, as will be explained later. White Paper Title Page 3 The software you use to import or checkout a module is called a CVS client. The CVS client can either be some stand-alone program or being integrated with your IDE, as is the case with JDeveloper. W hen checking out a module some extra files are created that are used by the CVS client, to determine what files are new and what files have been edited. Before you can upload a new file into the repository, you need to add it. Adding a file is like registering it for the module it belongs to. Once you finished your work, you can upload modified and new files (that have been added first) by doing a commit. In case of a modified file, this results in a new version or revision of that file. CVS will keep a history of all revisions, allowing you to revert to some previous version. You can retrieve other developers’ new or modified files from the repository by doing an update. If someone else has changed the file in the repository, CVS can automatically merge your changes during the update. W hile updating a file you can get a clean copy, which will undo any changes you have made. You can provide files with a tag, which is a label. Tagging is typically used to label a release of a module. CVS STEP BY STEP The following will guide you through the options of CVS that you as a developer will use most often. In order to be able to practice most options on your own computer, the first step is to download CVS and create a repository. Downloading and Installing CVS The core of CVS is the CVS engine, which is available for both Unix and W indows. Next to JDeveloper, this paper will discuss two popular CVS clients being TortoiseCVS and W inCVS, that both can act as a standalone CVS “engine” (the upcoming JDeveloper 10.1.3 will also be able to act as a standalone engine, but as this document is based on JDeveloper 10.1.2 that will not be discussed). In the remainder of this paper, TortoiseCVS or W inCVS is used to provide a standalone CVS engine, while JDeveloper is discussed as being the CVS client. At some point it is discussed how TortoiseCVS and W inCVS as a CVS client can add to JDeveloper. A few specifically useful features of TortoiseCVS and W inCVS are highlighted at the end of this paper. You can download TortoiseCVS from http://www.tortoisecvs.org and W inCVS from http://www.wincvs.org. For the remainder of this document it is assumed that you downloaded one of these clients and that you create a local, standalone repository. In case you need a shared repository CVSNT is recommended, which can be downloaded from http://www.cvsnt.com). After installing the CVS client, make sure the folder that contains cvs.exe is in your path (for example C:\Program Files\GNU\W inCVS 1.3\CVSNT or C:\Program Files\Tortoise). White Paper Title Page 4 Creating a Repository In the remainder of the paper an example is used of a JDeveloper workspace called CVSTryouts that resides in the folder J:\demos\CVSTryouts. The workspace has three projects in it: McyAnalysis, McyModel and McyView. Suppose you want to store these projects in a repository called CVSTryouts. W e will then work to a situation as in the following figure, where the local project is at the left side and the repository at the right site. The “remote” repository can reside anywhere on the network, including the same computer on which the local project folder structure resides. In this example does the local project reside on J-drive while the repository will reside on the D-drive. First you need to create a folder that will contain your CVS repository, for example D:\CVS. Open a command prompt box and check the path by executing the following command: cvs -version Keep the command prompt box open. You can now create the repository itself, by executing the following command in a command prompt window: cvs –d D:\CVS\CVSTryouts init The init command created a new folder D:\CVS\CVSTryouts, with a CVSROOT subfolder. This CVS root has been specified by the -d option and should refer to the absolute path of the repository to create. The CVSROOT folder is the “index” of the repository. The contents of the repository should not be modified by hand. Creating a CVS Connection Before you can use CVS from JDeveloper, you need to configure JDeveloper to use CVS. You need to have the cvs.exe in your path first, as has been described in “Downloading and Installing CVS”. You can now configure JDeveloper to use CVS by going to Tools -> Preferences -> Extension M anager -> Version Control and choose CVS. The CVS client has now been integrated with JDeveloper. White Paper Title Page 5 The next step is to create a CVS connection to your repository. You do this by opening the Connections Navigator, right-click on the CVS Server node and choose New CVS Connection. This
Recommended publications
  • Version Control 101 Exported from Please Visit the Link for the Latest Version and the Best Typesetting
    Version Control 101 Exported from http://cepsltb4.curent.utk.edu/wiki/efficiency/vcs, please visit the link for the latest version and the best typesetting. Version Control 101 is created in the hope to minimize the regret from lost files or untracked changes. There are two things I regret. I should have learned Python instead of MATLAB, and I should have learned version control earlier. Version control is like a time machine. It allows you to go back in time and find out history files. You might have heard of GitHub and Git and probably how steep the learning curve is. Version control is not just Git. Dropbox can do version control as well, for a limited time. This tutorial will get you started with some version control concepts from Dropbox to Git for your needs. More importantly, some general rules are suggested to minimize the chance of file losses. Contents Version Control 101 .............................................................................................................................. 1 General Rules ................................................................................................................................... 2 Version Control for Files ................................................................................................................... 2 DropBox or Google Drive ............................................................................................................. 2 Version Control on Confluence ...................................................................................................
    [Show full text]
  • Cvs Latest Version Download Cvs Latest Version Download
    cvs latest version download Cvs latest version download. cvs (Concurrent Versions System) command in Linux is used to store the history of a file. Whenever a file gets corrupted or anything goes wrong “cvs” help us to go back to the previous version and restore our file. Syntax: –allow-root=rootdir : Specify repository on the command line. It also specify legal cvsroot directory. See ‘Password authentication server’ in the CVS manual. -d, cvs_root_directory : It uses cvs_root_directory as the directory path name of the repository. It also overrides the $CVSROOT environment variable. -e, editor-command : It uses the editor command specified for entering log information. It also overrides $CVSEDITOR and $EDITOR environment variables. -f : It does not read the. CVS Commands: add : Add a new file/directory to the repository. admin : Administration front-end for RCS. annotate : Shows the last revision where each line was modified. checkout : Checkout sources for editing. commit : Check files into the repository. diff : Show differences between revisions. edit : Get ready to edit a watched file. editors : See who is editing a watched file. export : Export sources from CVS, similar to checkout. history : Show repository access history. import : Import sources into CVS, using vendor branches. init : It create a CVS repository if it doesn’t exist. log : Print out history information for files. rdiff : Create ‘patch’ format diffs between revisions. status : Display status information on checked out files. tag : It adds a symbolic tag to checked out version of files. unedit : Undo anedit command. update : Bring work tree in sync with repository. version : Show current CS version(s).
    [Show full text]
  • Tortoisemerge a Diff/Merge Tool for Windows Version 1.11
    TortoiseMerge A diff/merge tool for Windows Version 1.11 Stefan Küng Lübbe Onken Simon Large TortoiseMerge: A diff/merge tool for Windows: Version 1.11 by Stefan Küng, Lübbe Onken, and Simon Large Publication date 2018/09/22 18:28:22 (r28377) Table of Contents Preface ........................................................................................................................................ vi 1. TortoiseMerge is free! ....................................................................................................... vi 2. Acknowledgments ............................................................................................................. vi 1. Introduction .............................................................................................................................. 1 1.1. Overview ....................................................................................................................... 1 1.2. TortoiseMerge's History .................................................................................................... 1 2. Basic Concepts .......................................................................................................................... 3 2.1. Viewing and Merging Differences ...................................................................................... 3 2.2. Editing Conflicts ............................................................................................................. 3 2.3. Applying Patches ...........................................................................................................
    [Show full text]
  • Generating Commit Messages from Git Diffs
    Generating Commit Messages from Git Diffs Sven van Hal Mathieu Post Kasper Wendel Delft University of Technology Delft University of Technology Delft University of Technology [email protected] [email protected] [email protected] ABSTRACT be exploited by machine learning. The hypothesis is that methods Commit messages aid developers in their understanding of a con- based on machine learning, given enough training data, are able tinuously evolving codebase. However, developers not always doc- to extract more contextual information and latent factors about ument code changes properly. Automatically generating commit the why of a change. Furthermore, Allamanis et al. [1] state that messages would relieve this burden on developers. source code is “a form of human communication [and] has similar Recently, a number of different works have demonstrated the statistical properties to natural language corpora”. Following the feasibility of using methods from neural machine translation to success of (deep) machine learning in the field of natural language generate commit messages. This work aims to reproduce a promi- processing, neural networks seem promising for automated commit nent research paper in this field, as well as attempt to improve upon message generation as well. their results by proposing a novel preprocessing technique. Jiang et al. [12] have demonstrated that generating commit mes- A reproduction of the reference neural machine translation sages with neural networks is feasible. This work aims to reproduce model was able to achieve slightly better results on the same dataset. the results from [12] on the same and a different dataset. Addition- When applying more rigorous preprocessing, however, the per- ally, efforts are made to improve upon these results by applying a formance dropped significantly.
    [Show full text]
  • Efficient Algorithms for Comparing, Storing, and Sharing
    EFFICIENT ALGORITHMS FOR COMPARING, STORING, AND SHARING LARGE COLLECTIONS OF EVOLUTIONARY TREES A Dissertation by SUZANNE JUDE MATTHEWS Submitted to the Office of Graduate Studies of Texas A&M University in partial fulfillment of the requirements for the degree of DOCTOR OF PHILOSOPHY May 2012 Major Subject: Computer Science EFFICIENT ALGORITHMS FOR COMPARING, STORING, AND SHARING LARGE COLLECTIONS OF EVOLUTIONARY TREES A Dissertation by SUZANNE JUDE MATTHEWS Submitted to the Office of Graduate Studies of Texas A&M University in partial fulfillment of the requirements for the degree of DOCTOR OF PHILOSOPHY Approved by: Chair of Committee, Tiffani L. Williams Committee Members, Nancy M. Amato Jennifer L. Welch James B. Woolley Head of Department, Hank W. Walker May 2012 Major Subject: Computer Science iii ABSTRACT Efficient Algorithms for Comparing, Storing, and Sharing Large Collections of Evolutionary Trees. (May 2012) Suzanne Jude Matthews, B.S.; M.S., Rensselaer Polytechnic Institute Chair of Advisory Committee: Dr. Tiffani L. Williams Evolutionary relationships between a group of organisms are commonly summarized in a phylogenetic (or evolutionary) tree. The goal of phylogenetic inference is to infer the best tree structure that represents the relationships between a group of organisms, given a set of observations (e.g. molecular sequences). However, popular heuristics for inferring phylogenies output tens to hundreds of thousands of equally weighted candidate trees. Biologists summarize these trees into a single structure called the consensus tree. The central assumption is that the information discarded has less value than the information retained. But, what if this assumption is not true? In this dissertation, we demonstrate the value of retaining and studying tree collections.
    [Show full text]
  • Bluej Teamwork Repository Configuration
    BlueJ Teamwork Repository Configuration Version 2.0 for BlueJ Version 2.5.0 (and 2.2.x) Davin McCall School of Engineering & IT, Deakin University 1 Introduction This document gives a brief description of how you might set up a version control repository for use with BlueJ’s teamwork features. It is intended mainly as a “quick start” guide and not as a complete reference – for that you should refer to the version control software documentation (i.e. the CVS manual or the Subversion manual) – but it does explain some BlueJ-specific concepts (such as how BlueJ supports the notion of student groups or teams). Setting up a repository usually requires a server to which you have “root” or administrator access. This may mean that you need to ask a Systems Administrator to set up the repository for you. Since BlueJ version 2.5.0, both Subversion and CVS are supported version control systems. BlueJ version 2.2.x supports only CVS. BlueJ versions prior to 2.2.0 did not support teamwork features. Chapters 2 and 3 explain how to set up and test a repository using CVS. Chapter 4 then covers the equivalent steps for using Subversion. 2 Setting up a simple single user CVS repository for testing the BlueJ teamwork features 2.1 Setting up the repository server On Unix / Linux / MacOS X: You must have the CVS software installed on the machine you intend to use as a server. There is a good chance that it is already installed, but if not, your vendor or distribution provider will almost certainly provide packages that can be installed.
    [Show full text]
  • Version Control – Agile Workflow with Git/Github
    Version Control – Agile Workflow with Git/GitHub 19/20 November 2019 | Guido Trensch (JSC, SimLab Neuroscience) Content Motivation Version Control Systems (VCS) Understanding Git GitHub (Agile Workflow) References Forschungszentrum Jülich, JSC:SimLab Neuroscience 2 Content Motivation Version Control Systems (VCS) Understanding Git GitHub (Agile Workflow) References Forschungszentrum Jülich, JSC:SimLab Neuroscience 3 Motivation • Version control is one aspect of configuration management (CM). The main CM processes are concerned with: • System building • Preparing software for releases and keeping track of system versions. • Change management • Keeping track of requests for changes, working out the costs and impact. • Release management • Preparing software for releases and keeping track of system versions. • Version control • Keep track of different versions of software components and allow independent development. [Ian Sommerville,“Software Engineering”] Forschungszentrum Jülich, JSC:SimLab Neuroscience 4 Motivation • Keep track of different versions of software components • Identify, store, organize and control revisions and access to it • Essential for the organization of multi-developer projects is independent development • Ensure that changes made by different developers do not interfere with each other • Provide strategies to solve conflicts CONFLICT Alice Bob Forschungszentrum Jülich, JSC:SimLab Neuroscience 5 Content Motivation Version Control Systems (VCS) Understanding Git GitHub (Agile Workflow) References Forschungszentrum Jülich,
    [Show full text]
  • Revision Control
    Revision Control Tomáš Kalibera, (Peter Libič) Department of Distributed and Dependable Systems http://d3s.mff.cuni.cz CHARLES UNIVERSITY PRAGUE Faculty of Mathematics and Physics Problems solved by revision control What is it good for? Keeping history of system evolution • What a “system” can be . Source code (single file, source tree) . Textual document . In general anything what can evolve – can have versions • Why ? . Safer experimentation – easy reverting to an older version • Additional benefits . Tracking progress (how many lines have I added yesterday) . Incremental processing (distributing patches, …) Allowing concurrent work on a system • Why concurrent work ? . Size and complexity of current systems (source code) require team work • How can concurrent work be organized ? 1. Independent modifications of (distinct) system parts 2. Resolving conflicting modifications 3. Checking that the whole system works . Additional benefits . Evaluating productivity of team members Additional benefits of code revision control • How revision control helps . Code is isolated at one place (no generated files) . Notifications when a new code version is available • Potential applications that benefit . Automated testing • Compile errors, functional errors, performance regressions . Automated building . Backup • Being at one place, the source is isolated from unneeded generated files . Code browsing • Web interface with hyperlinked code Typical architecture Working copy Source code repository (versioned sources) synchronization Basic operations • Check-out . Create a working copy of repository content • Update . Update working copy using repository (both to latest and historical version) • Check-in (Commit) . Propagate working copy back to repository • Diff . Show differences between two versions of source code Simplified usage scenario Source code Check-out or update repository Working 1 copy 2 Modify & Test Check-in 3 Exporting/importing source trees • Import .
    [Show full text]
  • FAKULTÄT FÜR INFORMATIK Leveraging Traceability Between Code and Tasks for Code Reviews and Release Management
    FAKULTÄT FÜR INFORMATIK DER TECHNISCHEN UNIVERSITÄT MÜNCHEN Master’s Thesis in Informatics Leveraging Traceability between Code and Tasks for Code Reviews and Release Management Jan Finis FAKULTÄT FÜR INFORMATIK DER TECHNISCHEN UNIVERSITÄT MÜNCHEN Master’s Thesis in Informatics Leveraging Traceability between Code and Tasks for Code Reviews and Release Management Einsatz von Nachvollziehbarkeit zwischen Quellcode und Aufgaben für Code Reviews und Freigabemanagement Author: Jan Finis Supervisor: Prof. Bernd Brügge, Ph.D. Advisors: Maximilian Kögel, Nitesh Narayan Submission Date: May 18, 2011 I assure the single-handed composition of this master’s thesis only supported by declared resources. Sydney, May 10th, 2011 Jan Finis Acknowledgments First, I would like to thank my adviser Maximilian Kögel for actively supporting me with my thesis and being reachable for my frequent issues even at unusual times and even after he left the chair. Furthermore, I would like to thank him for his patience, as the surrounding conditions of my thesis, like me having an industrial internship and finishing my thesis abroad, were sometimes quite impedimental. Second, I want to thank my other adviser Nitesh Narayan for helping out after Max- imilian has left the chair. Since he did not advise me from the start, he had more effort working himself into my topic than any usual adviser being in charge of a thesis from the beginning on. Third, I want to thank the National ICT Australia for providing a workspace, Internet, and library access for me while I was finishing my thesis in Sydney. Finally, my thanks go to my supervisor Professor Bernd Brügge, Ph.D.
    [Show full text]
  • Change Management
    Enterprise Architect User Guide Series Change Management Managing change in a model? Sparx Systems Enterprise Architect has many tools to maintain data, such as Version Control, milestone Baselines, change Auditing, Project Transfer for backups, Validation, Integrity Checking and role-based User Security. Author: Sparx Systems Date: 16/01/2019 Version: 1.0 CREATED WITH Table of Contents Change Management 4 Version Control 5 Introduction 6 Version Control Usage 8 Version Control of Model Data 9 Version Control and Reference Data 10 Version Controlling Packages 11 Applying Version Control in a Team Environment 12 Version Control Nested Packages 14 Add Connectors To Locked Elements 15 Project Browser Indicators 16 Offline Version Control 17 Version Control Branching 19 Version Control Product Setup 20 System Requirements 22 Create a Subversion Environment 24 Create a new Repository Sub-tree 26 Create a Local Working Copy 27 Verify the SVN Workspace 28 Subversion Under Wine-Crossover 29 Preparing a Subversion Environment Under Wine 30 TortoiseSVN 32 Create a TFS Environment 33 TFS Workspaces 35 TFS Exclusive Check Outs 37 Verify the TFS Workspace 38 Create a CVS Environment 39 Prepare a CVS Local Workspace 41 Verify the CVS Workspace 42 TortoiseCVS 43 Create an SCC Environment 44 Upgrade at Enterprise Architect Version 4.5, Under SCC Version Control 46 Version Control Set Up 47 Re-use an Existing Configuration 48 Version Control Settings 49 SCC Settings 51 CVS Settings 53 SVN Settings 55 TFS Settings 57 Use Version Control 59 Configure Controlled
    [Show full text]
  • Opinnäytetyö Ohjeet
    Lappeenrannan–Lahden teknillinen yliopisto LUT School of Engineering Science Tietotekniikan koulutusohjelma Kandidaatintyö Mikko Mustonen PARHAITEN OPETUSKÄYTTÖÖN SOVELTUVAN VERSIONHALLINTAJÄRJESTELMÄN LÖYTÄMINEN Työn tarkastaja: Tutkijaopettaja Uolevi Nikula Työn ohjaaja: Tutkijaopettaja Uolevi Nikula TIIVISTELMÄ LUT-yliopisto School of Engineering Science Tietotekniikan koulutusohjelma Mikko Mustonen Parhaiten opetuskäyttöön soveltuvan versionhallintajärjestelmän löytäminen Kandidaatintyö 2019 31 sivua, 8 kuvaa, 2 taulukkoa Työn tarkastajat: Tutkijaopettaja Uolevi Nikula Hakusanat: versionhallinta, versionhallintajärjestelmä, Git, GitLab, SVN, Subversion, oppimateriaali Keywords: version control, version control system, Git, GitLab, SVN, Subversion, learning material LUT-yliopistossa on tietotekniikan opetuksessa käytetty Apache Subversionia versionhallintaan. Subversionin käyttö kuitenkin johtaa ylimääräisiin ylläpitotoimiin LUTin tietohallinnolle. Lisäksi Subversionin julkaisun jälkeen on tullut uusia versionhallintajärjestelmiä ja tässä työssä tutkitaankin, olisiko Subversion syytä vaihtaa johonkin toiseen versionhallintajärjestelmään opetuskäytössä. Työn tavoitteena on löytää opetuskäyttöön parhaiten soveltuva versionhallintajärjestelmä ja tuottaa sille opetusmateriaalia. Työssä havaittiin, että Git on suosituin versionhallintajärjestelmä ja se on myös suhteellisen helppo käyttää. Lisäksi GitLab on tutkimuksen mukaan Suomen yliopistoissa käytetyin ja ominaisuuksiltaan ja hinnaltaan sopivin Gitin web-käyttöliittymä. Näille tehtiin
    [Show full text]
  • Introduction to Subversion
    Introduction to Subversion Wendy Smoak Rob Richardson Desert Code Camp, October 2006 Wendy Smoak ● Sr. Systems Analyst, Arizona State University – Web application development – Systems and database administration ● Member, The Apache Software Foundation – Struts, MyFaces, Shale, Maven – Infrastructure, release management, documentation ● Contact me: – [email protected] – http://www.wsmoak.net Rob Richardson ● Principal, Richardson & Sons – Provides enterprise software development for small- to medium-sized businesses. – Has created software applications raging from enterprise-scale applications to PDA-based systems, web applications to embedded database synchronization and postscript processing systems. – Specializes in translating business requirements into technical solutions. – Our business is listening to your needs and building you effective tools. ● My Qualifications – Masters of Science in Computer Information Systems (MSCIS) – Bachelors of Fine Arts in Industrial Design (BFA ID), the study of human factors and human / technology interaction – Over 10 years of software development experience ● Contact me: – richardsonandsons.com/contact.aspx What is source control? ● A central place to store your code – Backup and recovery ● Records a history of code changes ● Facilitates collaboration among development team members ● Easy to check out prior code, undo changes, version products How does source control work? User1 Import Create Project or Add Update The Repository User2 Working Copy Commit Check Out User3 Working Copy Why should I use source control? ● Because the alternative is frightening beyond all reason ● Some motivation: “Well, I'd been working on the code, and got it to a state where I was prepared to share it. Then I thought I'd clean up the target directory and do a new build just to be sure.
    [Show full text]