Issues and Challenges in Model Versioning

Total Page:16

File Type:pdf, Size:1020Kb

Issues and Challenges in Model Versioning Issues and Challenges in Model Versioning Tutorial at iiWAS2009/MoMM2009 (Kuala Lumpur, Malaysia) 14.12.2009 Dipl.-Ing. Kerstin Altmanninger (Presenter) Johannes Kepler University Linz, Austria Dipl.-Ing. Kerstin Altmanninger Johannes Kepler University Linz Department of Telecooperation (TK) Altenberger Straße 69, 4040 Linz, Austria Phone: +43 (0)70/2468-9262 Fax: +43 (0)70/2468-9829 Email: [email protected] WWW: http://www.tk.jku.at Projects: . ModelCVS: A Semantic Infrastructure for Model-based Tool Integration . AMOR – Adaptable Model Versioning PhD thesis: Models in Conflict – A Semantically Enhanced Version Control System for Model Artifacts Issues and Challenges in Model Versioning 2/77 Tutorial@iiWAS2009/MoMM2009 Dipl.-Ing. Kerstin Altmanninger Outline . Introduction to Model-driven Engineering . Features of Version Control Systems • Top-level Features • 3-way Merge Features . Challenges in Model Versioning • Existing Systems • Requirements • Issues . Discussion . AMOR Project . Literature Issues and Challenges in Model Versioning 3/77 Tutorial@iiWAS2009/MoMM2009 Dipl.-Ing. Kerstin Altmanninger Introduction to Model-driven Engineering Issues and Challenges in Model Versioning 4/77 Tutorial@iiWAS2009/MoMM2009 Dipl.-Ing. Kerstin Altmanninger Introduction to Model-driven Engineering Problem #1: Problem Area vs. Solution Area GAP Problem GAP . How do analyze models associate with code? . How does changes in the code affect the model? GAP . Are models consistent with the code? . … modeler Traditional Development GAP GAP programmer GAP Issues and Challenges in Model Versioning 5/77 Tutorial@iiWAS2009/MoMM2009 Dipl.-Ing. Kerstin Altmanninger Introduction to Model-driven Engineering Problem #2: Modeling as a Necessary Evil . »When it comes down to it, the real point of software development is cutting code« . »Diagrams are, after all, just pretty pictures« . »No user is going to thank you for pretty pictures; what a user wants is software that executes« [M. Fowler, ”UML Distilled”, 1st edition, Addison Wesley, 1997] Issues and Challenges in Model Versioning 6/77 Tutorial@iiWAS2009/MoMM2009 Dipl.-Ing. Kerstin Altmanninger Introduction to Model-driven Engineering Solution: Model-driven Engineering (MDE) Model-driven Engineering Model-Driven Architecture Domain-Specific Modeling (MDA) (DSM) Platform Independent Model (PIM) Model a m a Platform Specific Model (PSM) a m Code Code OMG, ArcStyler, OptimalJ, Executable MetaCase, Eclipse Modeling Framework, OSLO, UML, AndroMDA, … Software Factories, WebRatio, … Issues and Challenges in Model Versioning 7/77 Tutorial@iiWAS2009/MoMM2009 Dipl.-Ing. Kerstin Altmanninger Introduction to Model-driven Engineering Effect #1: Evolution of Modeling . Models as sketch • Communication of ideas/alternatives • Goal: Modeling . Models as templates time • Documentation of design decisions • Goal: Implementation guide . Models as programs • Generation of applications automatically • Goal: Models are source code and vice versa Issues and Challenges in Model Versioning 8/77 Tutorial@iiWAS2009/MoMM2009 Dipl.-Ing. Kerstin Altmanninger Introduction to Model-driven Engineering Effect #2: Model as the Central Artifact Static Analysis Dynamic Analysis Documentation Rapid Prototyping Model Refactorings/ Code Generation Transformations Versioning Automatic Testing Issues and Challenges in Model Versioning 9/77 Tutorial@iiWAS2009/MoMM2009 Dipl.-Ing. Kerstin Altmanninger Introduction to Model-driven Engineering Effect #3: Models are more than just Pictures . Foundation: Formal language definition . Modeling languages: MOF, Ecore, … . Automatic model processing (e.g., PIM -> PSM, refactoring) . Model transformation languages: QVT, ATL, … . From the model to software . Code generation languages: JET, Xpand, … . Persistent model storage and model exchange . Model serialization/deserialization: XMI Issues and Challenges in Model Versioning 10/77 Tutorial@iiWAS2009/MoMM2009 Dipl.-Ing. Kerstin Altmanninger Features of Version Control Systems Issues and Challenges in Model Versioning 11/77 Tutorial@iiWAS2009/MoMM2009 Dipl.-Ing. Kerstin Altmanninger Features of Version Control Systems Overview of Version Control Systems . Part of Software Configuration Management . Basic components: • Repository • (Software) Artifacts => versions (revisions vs. variants) . Purpose: • Historical archiving and management of changes in (software) artifacts − retrieving old revisions − keeping track of changes repository • Supports collaboration revisions & variants Issues and Challenges in Model Versioning 12/77 Tutorial@iiWAS2009/MoMM2009 Dipl.-Ing. Kerstin Altmanninger Features of Version Control Systems Top-level Features Version Control System Collaboration Merge Repository Branching Architecture Pessimistic Optimistic Raw Two-way Three-way Centralized Distributed Implicit Explicit Comparison Conflict Detection Conflict Resolution Merge Issues and Challenges in Model Versioning 13/77 Tutorial@iiWAS2009/MoMM2009 Dipl.-Ing. Kerstin Altmanninger Features of Version Control Systems • Collaboration • Merge Pessimistic Versioning • Repository Architecture • Branching 1 repository 2 repository 3 repository 4 repository V V VV’ VV’ checkout lock lock commit checkout unlock lock V V’ V’ V’ V’ Bart Lisa Bart Lisa Bart Lisa Bart Lisa . Lock-modify-unlock paradigm . Disadvantages: • Prohibits parallel working • Administration overhead • False sense of security Issues and Challenges in Model Versioning 14/77 Tutorial@iiWAS2009/MoMM2009 Dipl.-Ing. Kerstin Altmanninger Features of Version Control Systems • Collaboration • Merge Optimistic Versioning • Repository Architecture • Branching 1 repository 2 repository 3 repository 4 repository V VV” VV” VV” checkout checkout commit commit V V V’ V” V’ V” V’ V* V” Bart Lisa Bart Lisa Bart Lisa Bart update Lisa 5 repository . Copy-modify-merge paradigm V VV* . Advantage: commit • Saves time V* V” . Disadvantage: Bart Lisa • Result depends on quality of the merge Issues and Challenges in Model Versioning 15/77 Tutorial@iiWAS2009/MoMM2009 Dipl.-Ing. Kerstin Altmanninger Features of Version Control Systems • Collaboration • Merge Raw vs. Two-way vs. Three-way • Repository Architecture • Branching (a) Raw (b) Two-way (c) Three-way V V V change’ change’’ change’ change’’ change’ change’’ diff diff’ diff’’ V’ V’’ V’ V’’ V’ V’’ change’’ conflicts & equivalences inconsistencies V* V* V* Issues and Challenges in Model Versioning 16/77 Tutorial@iiWAS2009/MoMM2009 Dipl.-Ing. Kerstin Altmanninger Features of Version Control Systems • Collaboration • Merge Centralized vs. Distributed • Repository Architecture • Branching . Centralized • Users access a master repository via a client • Edited working copies must be committed before they can be propagated to other VCS users • Version history is only available in the master repository . Distributed • Each user has an own repository • Repositories can be synchronized optionally with others • Version history is distributed on the different repositories Issues and Challenges in Model Versioning 17/77 Tutorial@iiWAS2009/MoMM2009 Dipl.-Ing. Kerstin Altmanninger Features of Version Control Systems • Collaboration • Merge Branching Variants • Repository Architecture • Branching . Implicit/Explicit . Used due to different intentions • Version Management − software product releases • Variant Management − software product variants − common core • Decentralized Version Control Systems • Resolution Support − storage of the intermediate versions before a merge − to retrieve information about differences, conflicts and resolution patterns Issues and Challenges in Model Versioning 18/77 Tutorial@iiWAS2009/MoMM2009 Dipl.-Ing. Kerstin Altmanninger Features of Version Control Systems 3-way Merge Features diff’ V C diff” A A A C A A A A C A A A C A Comparison A A A A A C A A A A A A V’ V” Conflict Detection Report Conflict V’ V” Resolution V* Merge Issues and Challenges in Model Versioning 19/77 Tutorial@iiWAS2009/MoMM2009 Dipl.-Ing. Kerstin Altmanninger Features of Version Control Systems Comparison Phase Comparison Basis Representation Differences Match Granularity State Change Line Tree Graph Generic Specific Specific Atomic Atomic Composite UUID Heuristics Fixed Configurable Issues and Challenges in Model Versioning 20/77 Tutorial@iiWAS2009/MoMM2009 Dipl.-Ing. Kerstin Altmanninger Features of Version Control Systems • Basis • Match • Representation State vs. Change • Granularity • Differences State-based Change-based ADD 1 8 1 1 8 1 2 3 4 2 4 2 3 4 2 UPD 4 5 6 7 5 6 7 5 6 7 5 6 7 . Input: . Input: • Two versions of an artifact • Two versions of an artifact • Change protocol (log file) . Advantage: . Advantage: • Independent of a development environment / • Composite operations available editor . Disadvantage: . Disadvantage: • Bounded to an development environment / • Matching techniques needed editor . Conflict detection is computed on the resulting . Conflict detection is computed on the difference sets logged changes Issues and Challenges in Model Versioning 21/77 Tutorial@iiWAS2009/MoMM2009 Dipl.-Ing. Kerstin Altmanninger Features of Version Control Systems • Basis • Match • Representation UUIDs vs. Heuristics • Granularity • Differences . Matching approaches particular important for state-based versioning . Needed to identify the artifact’s elements occurring in both versions . Universally Unique Identifiers (UUIDs) • All elements in an artifact need to provide an UUID • Newly created elements must be assigned with an UUID • UUIDs must not be modified until the deletion
Recommended publications
  • 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]
  • Higher Inductive Types (Hits) Are a New Type Former!
    Git as a HIT Dan Licata Wesleyan University 1 1 Darcs Git as a HIT Dan Licata Wesleyan University 1 1 HITs 2 Generator for 2 equality of equality HITs Homotopy Type Theory is an extension of Agda/Coq based on connections with homotopy theory [Hofmann&Streicher,Awodey&Warren,Voevodsky,Lumsdaine,Garner&van den Berg] 2 Generator for 2 equality of equality HITs Homotopy Type Theory is an extension of Agda/Coq based on connections with homotopy theory [Hofmann&Streicher,Awodey&Warren,Voevodsky,Lumsdaine,Garner&van den Berg] Higher inductive types (HITs) are a new type former! 2 Generator for 2 equality of equality HITs Homotopy Type Theory is an extension of Agda/Coq based on connections with homotopy theory [Hofmann&Streicher,Awodey&Warren,Voevodsky,Lumsdaine,Garner&van den Berg] Higher inductive types (HITs) are a new type former! They were originally invented[Lumsdaine,Shulman,…] to model basic spaces (circle, spheres, the torus, …) and constructions in homotopy theory 2 Generator for 2 equality of equality HITs Homotopy Type Theory is an extension of Agda/Coq based on connections with homotopy theory [Hofmann&Streicher,Awodey&Warren,Voevodsky,Lumsdaine,Garner&van den Berg] Higher inductive types (HITs) are a new type former! They were originally invented[Lumsdaine,Shulman,…] to model basic spaces (circle, spheres, the torus, …) and constructions in homotopy theory But they have many other applications, including some programming ones! 2 Generator for 2 equality of equality Patches Patch a a 2c2 diff b d = < b c c --- > d 3 3 id a a b b
    [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]
  • 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]
  • DVCS Or a New Way to Use Version Control Systems for Freebsd
    Brief history of VCS FreeBSD context & gures Is Arch/baz suited for FreeBSD? Mercurial to the rescue New processes & policies needed Conclusions DVCS or a new way to use Version Control Systems for FreeBSD Ollivier ROBERT <[email protected]> BSDCan 2006 Ottawa, Canada May, 12-13th, 2006 Ollivier ROBERT <[email protected]> DVCS or a new way to use Version Control Systems for FreeBSD Brief history of VCS FreeBSD context & gures Is Arch/baz suited for FreeBSD? Mercurial to the rescue New processes & policies needed Conclusions Agenda 1 Brief history of VCS 2 FreeBSD context & gures 3 Is Arch/baz suited for FreeBSD? 4 Mercurial to the rescue 5 New processes & policies needed 6 Conclusions Ollivier ROBERT <[email protected]> DVCS or a new way to use Version Control Systems for FreeBSD Brief history of VCS FreeBSD context & gures Is Arch/baz suited for FreeBSD? Mercurial to the rescue New processes & policies needed Conclusions The ancestors: SCCS, RCS File-oriented Use a subdirectory to store deltas and metadata Use lock-based architecture Support shared developments through NFS (fragile) SCCS is proprietary (System V), RCS is Open Source a SCCS clone exists: CSSC You can have a central repository with symlinks (RCS) Ollivier ROBERT <[email protected]> DVCS or a new way to use Version Control Systems for FreeBSD Brief history of VCS FreeBSD context & gures Is Arch/baz suited for FreeBSD? Mercurial to the rescue New processes & policies needed Conclusions CVS, the de facto VCS for the free world Initially written as shell wrappers over RCS then rewritten in C Centralised server Easy UI Use sandboxes to avoid locking Simple 3-way merges Can be replicated through CVSup or even rsync Extensive documentation (papers, websites, books) Free software and used everywhere (SourceForge for example) Ollivier ROBERT <[email protected]> DVCS or a new way to use Version Control Systems for FreeBSD Brief history of VCS FreeBSD context & gures Is Arch/baz suited for FreeBSD? Mercurial to the rescue New processes & policies needed Conclusions CVS annoyances and aws BUT..
    [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]
  • Darcs 2.0.0 (2.0.0 (+ 75 Patches)) Darcs
    Darcs 2.0.0 (2.0.0 (+ 75 patches)) Darcs David Roundy April 23, 2008 2 Contents 1 Introduction 7 1.1 Features . 9 1.2 Switching from CVS . 11 1.3 Switching from arch . 12 2 Building darcs 15 2.1 Prerequisites . 15 2.2 Building on Mac OS X . 16 2.3 Building on Microsoft Windows . 16 2.4 Building from tarball . 16 2.5 Building darcs from the repository . 17 2.6 Building darcs with git . 18 2.7 Submitting patches to darcs . 18 3 Getting started 19 3.1 Creating your repository . 19 3.2 Making changes . 20 3.3 Making your repository visible to others . 20 3.4 Getting changes made to another repository . 21 3.5 Moving patches from one repository to another . 21 3.5.1 All pulls . 21 3.5.2 Send and apply manually . 21 3.5.3 Push . 22 3.5.4 Push —apply-as . 22 3.5.5 Sending signed patches by email . 23 3.6 Reducing disk space usage . 26 3.6.1 Linking between repositories . 26 3.6.2 Alternate formats for the pristine tree . 26 4 Configuring darcs 29 4.1 prefs . 29 4.2 Environment variables . 32 4.3 General-purpose variables . 33 4.4 Remote repositories . 34 3 4 CONTENTS 4.5 Highlighted output . 36 4.6 Character escaping and non-ASCII character encodings . 36 5 Best practices 39 5.1 Introduction . 39 5.2 Creating patches . 39 5.2.1 Changes . 40 5.2.2 Keeping or discarding changes . 40 5.2.3 Unrecording changes .
    [Show full text]
  • Bazaar, Das DVCS
    Bazaar, das DVCS Marek Kubica 20. November 2008 Marek Kubica Bazaar, das DVCS Vorweg ein paar Infos Mit was ich so spiele Bazaar in der Arbeit Mercurial für Python-Projekte Git für den Rest Welche Spielzeuge lass ich links liegen CVS wozu noch wo es SVN gibt? SVN wozu noch wenn es DVCS gibt? darcs lohnt sich nicht mehr monotone, codeville, arch obsolete das selbsgehackte, tolle DVCS deines Nachbarn ;) Marek Kubica Bazaar, das DVCS Geschichte In the beginning, there was GNU Arch Marek Kubica Bazaar, das DVCS GNU Arch Die Anfänge von DVCS CVS stinkt, wir brauchen was besseres SVN ist Evolution, keine Revolution GNU Arch war das erste DVCS mit dem ich in Kontakt kam (larch) fürchterlich kompliziert wurde dann von tla ersetzt immer noch fürchterlich Canonical hat tla 1.2 geforkt und Bazaar, baz genannt Paralell dazu: revc = Arch 2.0 Marek Kubica Bazaar, das DVCS Baz als Rettung? Von heiÿen Kartoeln baz war in C Was passiert: Canonical ruft Bazaar-NG ins Leben, bzr, lässt baz fallen Bazaar-NG wird in Bazaar umgetauft baz ist tot, tla ist tot, larch ist tot, revc ist bedeutungslos Hurra, GNU Arch ist endlich tot, es lebe bzr! Marek Kubica Bazaar, das DVCS bzr, der Retter Was bietet Bazaar? in Python geschrieben, mit einigen Speedups in Pyrex (C) reguläre Releases (quasi jeden Monat) Einfache Bedienung Meist ausreichende Performance Umfangreiche Dokumentation: Programmmeldungen, Manpages, Wiki, IRC-Channel (wenn man Geduld hat) Flexible Einsatzmöglichkeiten (verschiedene Workows) 1 Git mit Bazaar simulieren 2 SVN in Bazaar nachbauen (für Nostalgiker) freier Hoster wo man Code hochladen kann (Launchpad) Marek Kubica Bazaar, das DVCS Zeitleiste 2005 war eine aufregende Zeit 26.
    [Show full text]
  • This Book Doesn't Tell You How to Write Faster Code, Or How to Write Code with Fewer Memory Leaks, Or Even How to Debug Code at All
    Practical Development Environments By Matthew B. Doar ............................................... Publisher: O'Reilly Pub Date: September 2005 ISBN: 0-596-00796-5 Pages: 328 Table of Contents | Index This book doesn't tell you how to write faster code, or how to write code with fewer memory leaks, or even how to debug code at all. What it does tell you is how to build your product in better ways, how to keep track of the code that you write, and how to track the bugs in your code. Plus some more things you'll wish you had known before starting a project. Practical Development Environments is a guide, a collection of advice about real development environments for small to medium-sized projects and groups. Each of the chapters considers a different kind of tool - tools for tracking versions of files, build tools, testing tools, bug-tracking tools, tools for creating documentation, and tools for creating packaged releases. Each chapter discusses what you should look for in that kind of tool and what to avoid, and also describes some good ideas, bad ideas, and annoying experiences for each area. Specific instances of each type of tool are described in enough detail so that you can decide which ones you want to investigate further. Developers want to write code, not maintain makefiles. Writers want to write content instead of manage templates. IT provides machines, but doesn't have time to maintain all the different tools. Managers want the product to move smoothly from development to release, and are interested in tools to help this happen more often.
    [Show full text]
  • Documentation for Fisheye 2.8 Documentation for Fisheye 2.8 2
    Documentation for FishEye 2.8 Documentation for FishEye 2.8 2 Contents Getting started . 8 Supported platforms . 8 End of Support Announcements for FishEye . 12 End of Support Announcement for IBM ClearCase . 14 End of Support Announcement for Internally Managed Repositories . 14 Installing FishEye on Windows . 16 Running FishEye as a Windows service . 19 Installing FishEye on Linux and Mac . 23 Starting to use FishEye . 26 Configuring JIRA Integration in the Setup Wizard . 31 Using FishEye . 38 Using the FishEye Screens . 39 Browsing through a repository . 41 Searching FishEye . 44 Viewing a File . 49 Viewing File Content . 50 Using Side by Side Diff View . 51 Viewing a File History . 53 Viewing the Changelog . 54 FishEye Charts . 56 Using Favourites in FishEye . 61 Changeset Discussions . 64 Viewing the commit graph for a repository . 64 Viewing People's Statistics . 68 Using smart commits . 70 Changing your User Profile . 75 Re-setting your password . 79 Antglob Reference Guide . 80 Date Expressions Reference Guide . 81 EyeQL Reference Guide . 82 Administering FishEye . 88 Managing your repositories . 89 Adding an External Repository . 91 CVS . 92 Git . 93 Mercurial . 96 Perforce . 98 Subversion . 101 SVN fisheye.access . 105 SVN tag and branch structure . 106 Adding an Internal Repository . 114 Enabling Repository Management in FishEye . 115 Creating Git Repositories . 117 Forking Git Repositories . 119 Deleting a Git Repository . 122 Setting up a Repository Client . 122 CVS Client . 122 Git Client . 122 Mercurial Client . 122 Perforce Client . 123 Subversion Client . 124 Native Subversion Client . 124 SVNkit Client . 126 Re-indexing your Repository . 126 Repository Options . 128 Authentication . 130 Created by Atlassian in 2012.
    [Show full text]
  • Distributed Versioning for Everyone
    Distributed versioning for everyone Distributed versioning for everyone Nicolas Pouillard [email protected] March 20, 2008 Nicolas Pouillard Distributed versioning for everyoneMarch 20, 2008 1 / 48 Distributed versioning for everyone Introduction Outline 1 Introduction 2 Principles of Distributed Versioning 3 Darcs is one of them 4 Conclusion Nicolas Pouillard Distributed versioning for everyoneMarch 20, 2008 2 / 48 Distributed versioning for everyone Introduction SCM: “Source Code Manager” Keeps track of changes to source code so you can track down bugs and work collaboratively. Most famous example: CVS Numerous acronyms: RCS, SCM, VCS DSCM: Distributed Source Code Manager Nicolas Pouillard Distributed versioning for everyoneMarch 20, 2008 3 / 48 Distributed versioning for everyone Introduction Purpose What’s the purpose of this presentation Show the importance of the distributed feature Enrich your toolbox with a DSCM Exorcize rumors about darcs Show how DSCM are adapted for personal use What’s not the purpose of it A flame against other DSCMs A precise darcs tutorial A real explanation of the Theory of patches Nicolas Pouillard Distributed versioning for everyoneMarch 20, 2008 4 / 48 Distributed versioning for everyone Principles of Distributed Versioning Outline 1 Introduction 2 Principles of Distributed Versioning 3 Darcs is one of them 4 Conclusion Nicolas Pouillard Distributed versioning for everyoneMarch 20, 2008 5 / 48 Distributed versioning for everyone Principles of Distributed Versioning Distributed rather than centralized
    [Show full text]
  • Tortoisecvs User's Guide Version 1.8.0
    TortoiseCVS User's Guide Version 1.8.0 Ben Campbell Martin Crawford Hartmut Honisch Francis Irving Torsten Martinsen Ian Dees Copyright © 2001 - 2004 TortoiseCVS Table of Contents 1. Getting Started What is CVS? What is TortoiseCVS? Where to Begin? 2. Basic Usage of TortoiseCVS Sandboxes Checking out a Module Windows Explorer and TortoiseCVS Total Commander and TortoiseCVS Updating your Sandbox Committing your Changes to the Repository Resolving Conflicts Adding Files and Directories to the Repository 3. Advanced Usage of TortoiseCVS Creating a New Repository or Module Watch, Edit and Unedit Tagging and Labeling Reverting to an Older Version of a File Branching And Merging Creating a Branch Selecting a Branch to Work On Merging from a Branch Going Back to the Head Branch Binary and Unicode Detection File Revision History History Dialog Revision Graph Dialog Web Log Making a Patch File 4. Customizing TortoiseCVS Overlay Icons Selecting a Different Set of Overlay Icons Changing how the Overlay Icons Work 5. Command Reference for TortoiseCVS Installing TortoiseCVS Obtaining a Working Copy: CVS Checkout... Getting Other People's Changes: CVS Update CVS Update Special... Making Your Changes Available to Others: CVS Commit... Adding New Files: CVS Add and CVS Add Contents... Discarding Obsolete Files: CVS Remove Finding Out What Has Changed: CVS Diff... Making a Snapshot: CVS Tag... Lines of Development: CVS Branch... CVS Merge... CVS Make New Module Watching And Locking Finding Out Who to Blame: CVS Annotate Showing More Information: CVS Explorer Columns Keyboard Shortcuts How Web Log Autodetects the Server URL 6. Dialog Reference for TortoiseCVS Add Dialog Checkout Dialog Update Special Dialog Commit Dialog Branch Dialog Make New Module Dialog Progress Dialog Tag Dialog Preferences Dialog Merge Dialog History Dialog Revision Graph Dialog About Dialog 7.
    [Show full text]