Git, Quilt and Other Kernel Maintenance Tools
|
|
|
- Marjorie Cunningham
- 10 years ago
- Views:
Transcription
1 Git, Quilt and Other Kernel Maintenance Tools James E.J. Bottomley 3 September 2007 Abstract The purpose of this paper is to introduce Git, Quilt and other patch maintenance tools with particular emphasis on how a kernel subsystem maintainer would use them, but also trying to be relevant to how they actually work 1 Introduction Linux Kernel development proceeds, by and large, by the provision of patches from an incredibly diverse community of interested parties. Over the years, it has become apparent that tracking the origin and authorship of those contributions is extremely important. Additionally, when the central collecting point (Linus) was getting overloaded, it became evident that a more scalable collection process was needed[1]. 1.1 History Bitkeeper was the initial solution to the Linus scalability issues. It attracted criticism by being proprietary, but it was the first tool to address the needs of the kernel community in terms of a fully scalable, fully distributed tool that was operable disconnected from its central repository. While Bitkeeper was Linus preferred tool, Andrew Morton demonstrated the fallacy that a source control tool was necessary by maintaining the massive amount of patches in his -mm tree purely by use of a set of patch management scripts which were later packaged up as Quilt. Following the Bitkeeper dust-up[2], it was necessary to come up with a tool which could replace all of its features (including, most importantly the meta-data tracking for submission history); however, in true open source fashion, some of the drawbacks of Bitkeeper could be corrected; in particular, the problem of actually tracking the linear history of the kernel.. 1
2 2 Developer s Certificate of Origin In 2004 SCO sued IBM for breach of copyright (amongst other things) claiming that IBM had caused code for which SCO owned the copyright to be incorporated into Linux, the SCO suit (being about the origins of code in the Linux kernel) showed the need not only to maintain an actual tree, but also the need to maintain the submission history of all patches into this tree. From this, the Developer Certificate of Origin[3] (all the Signed-off-by: tags) came into being, and Bitkeeper became an essential repository not just of the kernel code but also of the submission history and patch origin of all of the code flowing into the base Linux kernel. The object of the Developer s Certificate of Origin is to provide a chain of reasonable provenance from the source control meta-data (via the Signedoff-by: tags) back to the original submitter that gives reasonable assurance to anyone looking of where the code in the actual patch came from. The change it introduces in the kernel development methodology is that a source control tool which can add the Signed-off-by: tags to each commit is no longer a nice to have, it becomes mandatory. 3 The Origins of Git After the release of , and the withdrawal of Bitkeeper, a significant number of maintainers turned their attention to replacing its functionality. Having regarded several promising products, Linus concluded that there was only one thing for it and that was to halt kernel development and roll our own. At this point, it is only fair to point out that git wasn t the only roll your own source control project that was spawned. In response to Larry McVoy s assertion that Bitkeeper was a superlatively developed tool that had taken two years to get right and would be impossible to recreate in Open Source, Matt Mackall started his own project: Mercurial[4] (often abbreviated to hg, the Chemical symbol for Mercury), the name for which is derived from the personality traits of the person precipitating the controversy in the first place. Mercurial certainly developed surprisingly rapidly into a full featured distributed source control tool, accreting its own group of committed users along the way, in a timescale that almost exactly matched that of git (the actual who was first question is slightly controversial and will not be addressed). However, git, by virtue of being created by its eventual user is still the tool of choice for maintaining kernel trees that are fed directly to 2
3 Linus. Thus, this paper will not mention Mercurial further (reflecting the author s unfamiliarity with it). In fact, once git became stable enough to release a kernel with it (which was the kernel), Linus passed the git maintainership over to Junio Hamano and once more resumed his place at the head of the kernel development tree. The only other historically significant event with git was the maturity of the merge system. How to do merges had been an ongoing topic on the git mailing list for a while, with several people working on algorithms and scripts. As a result of this effort, on 18 April 2005, the first ever automated merge was made remotely from one git tree to another[5]. 3.1 The Fundamentals In the very inception of Git, Linus decreed that it wouldn t be a difference tracking tool, it would be a tree tracking tool. This means that the fundamental entity represented by each node in the history of the project would be a complete source tree. There would be nothing, other than the commit history itself linking these trees. This is a radical departure from most other forms of source control which try to track the differences between the files in the tree as the project evolves. One of the fundamental reasons for tracking differences instead of the actual files is that from one commit to the next, the amount of code changed is usually a tiny fraction of the total source base... thus tracking complete source trees would necessarily entail a tremendous amount of duplication and a concomitant huge amount of storage space 3.2 Content Accessible Objects The problem of tree duplication was solved in a very elegant way: since most of the files would remain constant between commits, each file was fingerprinted by its SHA1 hash and then filed under this fingerprint in the git object repository. This classification by content (where Content Accessible Objects comes from) means that however many times the same file appears in all the commits, its contents and hence SHA1 hash must be the same, thus all these occurrences point at the same SHA1 object, thus reducing the duplication significantly. Today, if you look at the objects directory of a git tree (under.git/objects you will see the initial two digits of the SHA1 fingerprint, so that git has a simple two level look-up to find objects. 3
4 3.3 Object Packing It should still be apparent to the reader that although a content based object classification system solves the problem of multiple copies of the same object, it is still an inefficient way of storing objects which are substantially similar but not exactly identical (think of a 10,000 line file which has had only one of those lines changed). This problem is solved by packing: a technique whereby the similar objects in the object repository are identified and compressed together, thus eliminating most of their redundancy. Since packing has no impact at all on the operation of git (it s really just a mechanism for reducing the size of the repository), it won t be discussed further. 3.4 Objects in Git Once it was realised that fingerprinted SHA1 objects would solve the file copy proliferation problem, they were actually pressed into service as the fundamental storage elements for everything. Today, git has five primary objects: commits, trees, blobs and tags. Additionally, every object is referenced by its SHA1 fingerprint. Blobs are the simplest objects: they represent the actual files stripped of any meta-data information (including the file name: two differently named files in git with the same content would be represented by the same blob). Tree objects in fact are where the file names are stored. They are very similar to current file-system directory objects: They link names to either blobs or other trees (blobs representing files and trees representing lower level directories) and the linking, naturally being done by the SHA1 fingerprint and type of the relevant object. Note in particular, that there s no other information in a tree object, so the per file comment meta-data that s often associated with other source control systems is absent in git. Commits represents the fundamental chain of history in the repository. They have a number of predefined fields: a tree (representing the actual source tree state as of this commit), one or more parents (simple SHA1 pointers to other commit objects which logically preceded this one) the author, committer and date information followed by free form text describing the commit. Tags are really just information pointing to particular commits. Linus uses tags to label the tree when he makes a release. The main point about tags is that they act as invariant points in the tree that are easy to find again. 4
5 4 Git Following on from the origins, we will now describe how git can be used as the basis for a full featured, distributed project repository capable of filling all the needs of the Linux Kernel. 4.1 Making a Repository Obviously, the objects aren t by themselves sufficient to define a repository, you also need to know where to begin. This beginning point is called the head commit (or simply head) of the repository. One can use this head to display the entire commit history of the repository. Additionally, one needs some way to check the repository out and to determine if there are any local differences between the head and the checked out repository. This tracking is done my the index file. It simply records the current state of the checked out files by time-stamp (so we don t have to do expensive SHA1 checking unless the timestamps actually differ). 4.2 Branches Since the head tracks the current end point of the repository, it will be no surprise to discover that there can be more than one of these. In fact git does branches (which are forks away from the linear tree) simply by having multiple heads. Each of the heads maintained by git can be seen in the.git/refs/heads directory, with the master representing the primary head of the tree. Along with this, the.git/refs/tags directory represents a cache of the currently interesting tags. Although tags can be reconstructed from scanning the repository, whereas heads might not be. 4.3 Merging When two (or more) branches of a tree come back together, this is termed a merge. As far as git is concerned, a merge is simply a tree with multiple parents (and sometimes there are even more than two: Paul Mackerras once famously did an octopus merge of eight separate branches in a single commit). The key thing to remember here is that git doesn t in the least care how the merge is done; all it wants to see is a list of parents and the final merged tree. This, therefore, makes the actual merge algorithms almost infinitely pluggable. Indeed, if you look at the current git merge algorithm, you ll see it consists of at least four separate mechanisms, which it tries sequentially to see what actually produces the best fit. 5
6 A substantial amount of work has gone into git to enhance the merge tools (including the contribution of a nice graphical interface by Ted Ts o). 4.4 Adding, Removing and Renaming files Historically, tracking these operations has been a real problem for source control systems. However, git really has no such issues: A removed file simply disappears from the tree in the next commit, likewise an added file simply appears. A renamed file, providing it is a pure rename not associated with content changes, simply shows up as two different tree names pointing to the same blob. 4.5 File Histories Sometimes, it is vitally important not simply to look at the complete history but to look at slices of it that are relevant to individual files or directories. One of the drawbacks of the git we only track trees philosophy is that the information about the individual file is present, but hard to extract. What git actually does when asked for this information is to traverse the entire commit tree looking for places where the file or directory being tracked was changed (and prints out only the commits that changed it). This method even works across renames, because the tool can see the same blob with different names across different commits. However, it becomes problematic when the file was not only renamed by had its contents changed. Here, git can do statistical analysis between all files in the tree to see if two are substantially similar, and therefore were possibly a rename with content change. However, this method is only statistical and doesn t give a definitive match. The moral of this is that if you re going to change a file s name and it s contents, do it in two separate commits so we can preserve the rename definitively in the meta-data. This leads to the final observation that all operations that were possible with conventional file difference tracking source control tools are also possible with git... it just might require more sophisticated analysis and more processing power to derive the information. 5 Using Git This paper isn t going to be a how to guide for git. For most of the commands you can look them up yourself using git help 6
7 However, there are one or two incredibly useful commands that bear further scrutiny. 5.1 git rebase A rebase simply means to take an existing git patch set and base it off a new tree (altering all of the commit ids in the process). The true advantage of a rebase instead of reapplying patches to the top of the tree is that git can use its set of merge algorithms to perform the rebase and because it knows the prior commit for each patch it is able to perform this merger far more efficiently than a simple diff based patch. For this reason, if a quilt set fails to rebase, it is often easier to import the quilt to git, get git to do the rebase then re-export to quilt (using git format-patch) than to try to fix up the quilt rejections. 5.2 git bisect This is one of the classic and most useful debugging tools in Linux Kernel development today. Given the problem of something broke my xxx it allows even a novice to find the patch that caused the breakage (provided they re capable of building their own kernel). What git bisect allows you to do is to specify the last working and first broken kernels. You do this by git bisect begin git bisect good sha1 of last good commit git bisect bad sha1 of first bad commit Git will respond with Bisecting: 159 revisions left to test after this And you go on to build the kernel and try it out. In each case typing git bisect good or git bisect bad depending on whether your bug shows up. Eventually (in O(log N) of the N commits) git will tell you which the bad commit is and this is the one you should either fix or report. 6 Quilt Quilt is essentially a patch management toolkit. Where it differs from git is that it has no permanent history: The patches themselves can have a description field which usually equates to the commit meta-data in git. Where quilt differs from git is in the anchoring of the patch set (quilt is simply a series of patches above an extracted source base, without any definitive identification of the actual source base being patched). Quilt does contain a 7
8 simple series file identifying the patch sequence to be applied to the source base. The simple beauty of quilt over git is that it is incredibly easy to add and remove patches and even to re-order them. For this reason, not just Andrew, but also a growing number of kernel maintainers are adopting quilt series as their preferred method of storing patches. References [1] Rob Landley A modest proposal We need a patch penguin Archive: 28 January 2002 [2] Linus Torvalds Kernel SCM Saga... Archive: org/lkml/2005/4/6/121 6 April 2005 [3] Developer Certificate of Origin Linux Kernel Documentation: Documentation/SubmittingPatches section 12 [4] Matt Mackall Mercurial v0.1 - a minimal scalable distributed SCM Archive: 20 April 2005 [5] Linus Torvalds Merge SCSI tree from James Bottomley. Commit id 0b2cad2f30d0353f2576b1a2207c0792ba April
Git. A Distributed Version Control System. Carlos García Campos [email protected]
Git A Distributed Version Control System Carlos García Campos [email protected] Carlos García Campos [email protected] - Git 1 A couple of Quotes For the first 10 years of kernel maintenance, we literally
1. History 2. Structure 3. Git Comparison 4. File Storage 5. File Tracking 6. Staging 7. Queues (MQ) 8. Merge Tools 9. Interfaces
1 Hg 1. History 2. Structure 3. Git Comparison 4. File Storage 5. File Tracking 6. Staging 7. Queues (MQ) 8. Merge Tools 9. Interfaces 2 Mercurial / Git History Bitmover's BitKeeper Proprietary distributed
Version Control with Svn, Git and git-svn. Kate Hedstrom ARSC, UAF
1 Version Control with Svn, Git and git-svn Kate Hedstrom ARSC, UAF 2 Version Control Software System for managing source files For groups of people working on the same code When you need to get back last
Version Control Systems: SVN and GIT. How do VCS support SW development teams?
Version Control Systems: SVN and GIT How do VCS support SW development teams? CS 435/535 The College of William and Mary Agile manifesto We are uncovering better ways of developing software by doing it
Introduction to Git. Markus Kötter [email protected]. Notes. Leinelab Workshop July 28, 2015
Introduction to Git Markus Kötter [email protected] Leinelab Workshop July 28, 2015 Motivation - Why use version control? Versions in file names: does this look familiar? $ ls file file.2 file.
CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)
Today: Source code control CPSC 491 Source Code (Version) Control Exercise: 1. Pretend like you don t have a version control system (e. g., no git, subversion, cvs, etc.) 2. How would you manage your source
The FOSSology Project Overview and Discussion. » The Open Compliance Program. ... By Bob Gobeille, Hewlett-Packard
» The Open Compliance Program The FOSSology Project Overview and Discussion By Bob Gobeille, Hewlett-Packard A White Paper By The Linux Foundation FOSSology (http://fossologyorg) is an open source compliance
Version Control with Git. Kate Hedstrom ARSC, UAF
1 Version Control with Git Kate Hedstrom ARSC, UAF Linus Torvalds 3 Version Control Software System for managing source files For groups of people working on the same code When you need to get back last
Version Control with Git. Dylan Nugent
Version Control with Git Dylan Nugent Agenda What is Version Control? (and why use it?) What is Git? (And why Git?) How Git Works (in theory) Setting up Git (surviving the CLI) The basics of Git (Just
Copyright 2010 You have giveaway rights to this report. Feel free to share.
Article Marketing Magic Copyright 2010 You have giveaway rights to this report. Feel free to share. Table of Contents What Is Article Marketing?...3 The History of Article Marketing...7 Article Marketing
Surround SCM Best Practices
Surround SCM Best Practices This document addresses some of the common activities in Surround SCM and offers best practices for each. These best practices are designed with Surround SCM users in mind,
Release Management Within Open Source Projects
Management Within Open Source Projects Justin R. Erenkrantz Institute for Software Research University of California, Irvine Irvine, CA 92697-3425 [email protected] Abstract A simple classification
A block based storage model for remote online backups in a trust no one environment
A block based storage model for remote online backups in a trust no one environment http://www.duplicati.com/ Kenneth Skovhede (author, [email protected]) René Stach (editor, [email protected]) Abstract
Integrated version control with Fossil SCM
Integrated version control with Fossil SCM Tech Talk 2009-12-01 Arne Bachmann Folie 1 Overview Web address www.fossil-scm.org Author Dr. D.R. Hipp - Author of License GPL v2 Motto No information shall
bup: the git-based backup system Avery Pennarun
bup: the git-based backup system Avery Pennarun 2010 10 25 The Challenge Back up entire filesystems (> 1TB) Including huge VM disk images (files >100GB) Lots of separate files (500k or more) Calculate/store
5 barriers to database source control and how you can get around them
WHITEPAPER DATABASE CHANGE MANAGEMENT 5 barriers to database source control and how you can get around them 91% of Fortune 100 companies use Red Gate Content Introduction We have backups of our databases,
Software Engineering Process. Kevin Cathey
Software Engineering Process Kevin Cathey Where are we going? Last Week iphone Application Technologies Workshop This Week Software Engineering Process Thanksgiving Break Write some code, yo 2 Dec Options:
STORAGE. Buying Guide: TARGET DATA DEDUPLICATION BACKUP SYSTEMS. inside
Managing the information that drives the enterprise STORAGE Buying Guide: DEDUPLICATION inside What you need to know about target data deduplication Special factors to consider One key difference among
Distributed Version Control with Mercurial and git
OpenStax-CNX module: m37404 1 Distributed Version Control with Mercurial and git Hannes Hirzel This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License 3.0 Abstract
Zero-Touch Drupal Deployment
Zero-Touch Drupal Deployment Whitepaper Date 25th October 2011 Document Number MIG5-WP-D-004 Revision 01 1 Table of Contents Preamble The concept Version control Consistency breeds abstraction Automation
Version Uncontrolled! : How to Manage Your Version Control
Version Uncontrolled! : How to Manage Your Version Control Harold Dost III, Raastech ABSTRACT Are you constantly wondering what is in your production environment? Do you have any doubts about what code
Pattern Insight Clone Detection
Pattern Insight Clone Detection TM The fastest, most effective way to discover all similar code segments What is Clone Detection? Pattern Insight Clone Detection is a powerful pattern discovery technology
Version Control Your Jenkins Jobs with Jenkins Job Builder
Version Control Your Jenkins Jobs with Jenkins Job Builder Abstract Wayne Warren [email protected] Puppet Labs uses Jenkins to automate building and testing software. While we do derive benefit from
Lessons Learned in Software Testing
Lessons Learned in Software Testing An excellent book covering a range of testing topics Practical rather than academic In the next few lectures, we ll discuss some of the key lessons from this book, and
Cloud: It s not a nebulous concept
WHITEPAPER Author: Stuart James Cloud: It s not a nebulous concept Challenging and removing the complexities of truly understanding Cloud Removing the complexities to truly understand Cloud Author: Stuart
How To Manage Source Code With Git
English Sign in (or register) Technical topics Evaluation software Community Events Manage source code using Git Toolset provides reliable revision control on Linux Eli M. Dow ([email protected]), Software
Gitflow process. Adapt Learning: Gitflow process. Document control
Adapt Learning: Gitflow process Document control Abstract: Presents Totara Social s design goals to ensure subsequent design and development meets the needs of end- users. Author: Fabien O Carroll, Sven
Removing The Linux Routing Cache
Removing The Red Hat Inc. Columbia University, New York, 2012 Removing The 1 Linux Maintainership 2 3 4 5 Removing The My Background Started working on the kernel 18+ years ago. First project: helping
Version Control with Subversion and Xcode
Version Control with Subversion and Xcode Author: Mark Szymczyk Last Update: June 21, 2006 This article shows you how to place your source code files under version control using Subversion and Xcode. By
Two Best Practices for Scientific Computing
Two Best Practices for Scientific Computing Version Control Systems & Automated Code Testing David Love Software Interest Group University of Arizona February 18, 2013 How This Talk Happened Applied alumnus,
Version control. HEAD is the name of the latest revision in the repository. It can be used in subversion rather than the latest revision number.
Version control Version control is a powerful tool for many kinds of work done over a period of time, including writing papers and theses as well as writing code. This session gives a introduction to a
PKI, Git and SVN. Adam Young. Presented by. Senior Software Engineer, Red Hat. License Licensed under http://creativecommons.org/licenses/by/3.
PKI, Git and SVN Presented by Adam Young Senior Software Engineer, Red Hat License Licensed under http://creativecommons.org/licenses/by/3.0/ Agenda Why git Getting started Branches Commits Why? Saved
Annoyances with our current source control Can it get more comfortable? Git Appendix. Git vs Subversion. Andrey Kotlarski 13.XII.
Git vs Subversion Andrey Kotlarski 13.XII.2011 Outline Annoyances with our current source control Can it get more comfortable? Git Appendix Rant Network traffic Hopefully we have good repository backup
Practical Online Filesystem Checking and Repair
Practical Online Filesystem Checking and Repair Daniel Phillips Samsung Research America (Silicon Valley) [email protected] 1 2013 SAMSUNG Electronics Co. Why we want online checking: Fsck
Git Basics. Christian Hanser. Institute for Applied Information Processing and Communications Graz University of Technology. 6.
Git Basics Christian Hanser Institute for Applied Information Processing and Communications Graz University of Technology 6. March 2013 Christian Hanser 6. March 2013 Seite 1/39 Outline Learning Targets
CONTENT STORE SURVIVAL GUIDE
REVISED EDITION CONTENT STORE SURVIVAL GUIDE THE COMPLETE MANUAL TO SURVIVE AND MANAGE THE IBM COGNOS CONTENT STORE CONTENT STORE SURVIVAL GUIDE 2 of 24 Table of Contents EXECUTIVE SUMMARY THE ROLE OF
Git Internals. Source code control and beyond by Scott Chacon
$9 Git Internals Source code control and beyond by Scott Chacon Git Internals 2008 Scott Chacon Every effort was made to provide accurate information in this document. However, neither Scott Chacon nor
Introduction to Version Control
Research Institute for Symbolic Computation Johannes Kepler University Linz, Austria Winter semester 2014 Outline General Remarks about Version Control 1 General Remarks about Version Control 2 Outline
The Real Challenges of Configuration Management
The Real Challenges of Configuration Management McCabe & Associates Table of Contents The Real Challenges of CM 3 Introduction 3 Parallel Development 3 Maintaining Multiple Releases 3 Rapid Development
Persistent Data Structures
6.854 Advanced Algorithms Lecture 2: September 9, 2005 Scribes: Sommer Gentry, Eddie Kohler Lecturer: David Karger Persistent Data Structures 2.1 Introduction and motivation So far, we ve seen only ephemeral
Top Ten Questions. to Ask Your Primary Storage Provider About Their Data Efficiency. May 2014. Copyright 2014 Permabit Technology Corporation
Top Ten Questions to Ask Your Primary Storage Provider About Their Data Efficiency May 2014 Copyright 2014 Permabit Technology Corporation Introduction The value of data efficiency technologies, namely
What Do You Need from a Configuration Management Database (CMDB)? BEST PRACTICES WHITE PAPER
What Do You Need from a Configuration Management Database (CMDB)? BEST PRACTICES WHITE PAPER Table of contents EXECUTIVE SUMMARY...1 WHY A CMDB?...2 The importance of configuration management...2 Goals...2
5 Group Policy Management Capabilities You re Missing
5 Group Policy Management Capabilities You re Missing Don Jones 1. 8 0 0. 8 1 3. 6 4 1 5 w w w. s c r i p t l o g i c. c o m / s m b I T 2011 ScriptLogic Corporation ALL RIGHTS RESERVED. ScriptLogic, the
WINDOWS AZURE AND WINDOWS HPC SERVER
David Chappell March 2012 WINDOWS AZURE AND WINDOWS HPC SERVER HIGH-PERFORMANCE COMPUTING IN THE CLOUD Sponsored by Microsoft Corporation Copyright 2012 Chappell & Associates Contents High-Performance
Version Control with. Ben Morgan
Version Control with Ben Morgan Developer Workflow Log what we did: Add foo support Edit Sources Add Files Compile and Test Logbook ======= 1. Initial version Logbook ======= 1. Initial version 2. Remove
Revision control systems (RCS) and
Revision control systems (RCS) and Subversion Problem area Software projects with multiple developers need to coordinate and synchronize the source code Approaches to version control Work on same computer
Advanced Computing Tools for Applied Research Chapter 4. Version control
Advanced Computing Tools for Applied Research Jaime Boal Martín-Larrauri Rafael Palacios Hielscher Academic year 2014/2015 1 Version control fundamentals 2 What you probably do now Manually save copies
Using Git for Project Management with µvision
MDK Version 5 Tutorial AN279, Spring 2015, V 1.0 Abstract Teamwork is the basis of many modern microcontroller development projects. Often teams are distributed all over the world and over various time
Implementing 2-Legged OAuth in Javascript (and CloudTest)
Implementing 2-Legged OAuth in Javascript (and CloudTest) Introduction If you re reading this you are probably looking for information on how to implement 2-Legged OAuth in Javascript. I recently had to
Continuous Integration. CSC 440: Software Engineering Slide #1
Continuous Integration CSC 440: Software Engineering Slide #1 Topics 1. Continuous integration 2. Configuration management 3. Types of version control 1. None 2. Lock-Modify-Unlock 3. Copy-Modify-Merge
Git Basics. Christopher Simpkins [email protected]. Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 1 / 22
Git Basics Christopher Simpkins [email protected] Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS 1331 1 / 22 Version Control Systems Records changes to files over time Allows you to
A New Foundation For Customer Management
The Customer Data Platform: A New Foundation For Customer Management 730 Yale Avenue Swarthmore, PA 19081 [email protected] The Marketing Technology Treadmill Marketing automation. Inbound marketing.
The Role and uses of Peer-to-Peer in file-sharing. Computer Communication & Distributed Systems EDA 390
The Role and uses of Peer-to-Peer in file-sharing Computer Communication & Distributed Systems EDA 390 Jenny Bengtsson Prarthanaa Khokar [email protected] [email protected] Gothenburg, May
IBM Rational ClearCase, Version 8.0
IBM Rational ClearCase, Version 8.0 Improve software and systems delivery with automated software configuration management solutions Highlights Improve software delivery and software development life cycle
Automating the Measurement of Open Source Projects
Automating the Measurement of Open Source Projects Daniel German Department of Computer Science University of Victoria [email protected] Audris Mockus Avaya Labs Department of Software Technology Research
Introducing Xcode Source Control
APPENDIX A Introducing Xcode Source Control What You ll Learn in This Appendix: u The source control features offered in Xcode u The language of source control systems u How to connect to remote Subversion
Version Control Script
Version Control Script Mike Jackson, The Software Sustainability Institute Things you should do are written in bold. Suggested dialog is in normal text. Command- line excerpts and code fragments are in
Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of
Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of Computer Science Technische Universität Darmstadt Dr.
CS355 Hw 3. Extended Shell with Job Control
CS355 Hw 3 Due by the end of day Tuesday, Mar 18. Design document due on Thursday, Feb 27 in class. Written supplementary problems due on Thursday, March 6. Programming Assignment: You should team up with
Efficient Automated Build and Deployment Framework with Parallel Process
Efficient Automated Build and Deployment Framework with Parallel Process Prachee Kamboj 1, Lincy Mathews 2 Information Science and engineering Department, M. S. Ramaiah Institute of Technology, Bangalore,
Attix5 Pro Server Edition
Attix5 Pro Server Edition V7.0.3 User Manual for Linux and Unix operating systems Your guide to protecting data with Attix5 Pro Server Edition. Copyright notice and proprietary information All rights reserved.
CDS Invenio - a software solution for National Repository of Grey Literature
CDS Invenio - a software solution for National Repository of Grey Literature Tomáš Müller National Technical Library, Prague, Czech Republic [email protected] Third Seminar on Providing Access
Version Control Systems
Version Control Systems ESA 2015/2016 Adam Belloum [email protected] Material Prepared by Eelco Schatborn Today IntroducGon to Version Control Systems Centralized Version Control Systems RCS CVS SVN
Data Compression in Blackbaud CRM Databases
Data Compression in Blackbaud CRM Databases Len Wyatt Enterprise Performance Team Executive Summary... 1 Compression in SQL Server... 2 Perform Compression in Blackbaud CRM Databases... 3 Initial Compression...
Foundations for Systems Development
Foundations for Systems Development ASSIGNMENT 1 Read this assignment introduction. Then, read Chapter 1, The Systems Development Environment, on pages 2 25 in your textbook. What Is Systems Analysis and
Version Control using Git and Github. Joseph Rivera
Version Control using Git and Github Joseph Rivera 1 What is Version Control? Powerful development tool! Management of additions, deletions, and modifications to software/source code or more generally
3. Broken Account and Session Management. 4. Cross-Site Scripting (XSS) Flaws. Web browsers execute code sent from websites. Account Management
What is an? s Ten Most Critical Web Application Security Vulnerabilities Anthony LAI, CISSP, CISA Chapter Leader (Hong Kong) [email protected] Open Web Application Security Project http://www.owasp.org
Linux Driver Devices. Why, When, Which, How?
Bertrand Mermet Sylvain Ract Linux Driver Devices. Why, When, Which, How? Since its creation in the early 1990 s Linux has been installed on millions of computers or embedded systems. These systems may
Status and Direction of Kernel Development
Status and Direction of Kernel Development Andrew Morton Linux Foundation Japan Linux Symposium 2008 July 2008 Page 1 of 18 Overview Process The linux-next
How to Plan a Successful Load Testing Programme for today s websites
How to Plan a Successful Load Testing Programme for today s websites This guide introduces best practise for load testing to overcome the complexities of today s rich, dynamic websites. It includes 10
Version Control with Git. Linux Users Group UT Arlington. Rohit Rawat [email protected]
Version Control with Git Linux Users Group UT Arlington Rohit Rawat [email protected] Need for Version Control Better than manually storing backups of older versions Easier to keep everyone updated
Linux Kernel Development
Linux Kernel Development How Fast it is Going, Who is Doing It, What They are Doing, and Who is Sponsoring It by Greg Kroah-Hartman, SuSE Labs / Novell Inc., [email protected] Jonathan Corbet, LWN.net,
Derived from Chris Cannam's original at, https://code.soundsoftware.ac.uk/projects/easyhg/wiki/sc2012bootcamppl an.
Version Control Key Points ========================== Mike Jackson, The Software Sustainability Institute. This work is licensed under the Creative Commons Attribution License. Copyright (c) Software Carpentry
Case Study: Structured Approach to Document Management (HCC)
Case Study: Structured Approach to Document Management (HCC) iworkplace Intranet, Extranet & business process automation The project Hamilton City Council has recently undertaken a major systems upgrade,
What Is Specific in Load Testing?
What Is Specific in Load Testing? Testing of multi-user applications under realistic and stress loads is really the only way to ensure appropriate performance and reliability in production. Load testing
Version control. with git and GitHub. Karl Broman. Biostatistics & Medical Informatics, UW Madison
Version control with git and GitHub Karl Broman Biostatistics & Medical Informatics, UW Madison kbroman.org github.com/kbroman @kwbroman Course web: kbroman.org/tools4rr Slides prepared with Sam Younkin
Version Control. Luka Milovanov [email protected]
Version Control Luka Milovanov [email protected] Configuration Management Configuration management is the management of system change to software products Version management: consistent scheme of version
Putting It All Together. Vagrant Drush Version Control
Putting It All Together Vagrant Drush Version Control Vagrant Most Drupal developers now work on OSX. The Vagarant provisioning scripts may not work on Windows without subtle changes. If supplied, read
TaskCentre. TaskCentre. BPM Software: The rise of next generation workflow applications. BPM Software
AUTOMATING BUSINESS PROCESSES TaskCentre : The rise of next generation workflow applications TaskCentre The Leading Business Process Management (BPM) Solution Company The knowledge you will gain from this
Content. Development Tools 2(63)
Development Tools Content Project management and build, Maven Version control, Git Code coverage, JaCoCo Profiling, NetBeans Static Analyzer, NetBeans Continuous integration, Hudson Development Tools 2(63)
Dynamic Output Solutions For Oracle
White Paper Dynamic Output Solutions For Oracle DocOrigin vs. BI Publisher: Different Approaches, Different Abilities This paper will discuss and compare several of the most critical features that make
Supported Upgrade Paths for FortiOS Firmware VERSION 5.0.12
Supported Upgrade Paths for FortiOS Firmware VERSION 5.0.12 FORTINET DOCUMENT LIBRARY http://docs.fortinet.com FORTINET VIDEO GUIDE http://video.fortinet.com FORTINET BLOG https://blog.fortinet.com CUSTOMER
Free/Libre and Open Source Software: Survey and Study FLOSS
Free/Libre and Open Source Software: Survey and Study FLOSS Deliverable D18: FINAL REPORT Part V: Software Source Code Survey Rishab Aiyer Ghosh Gregorio Robles Ruediger Glott International Institute of
Version Control with Mercurial and SSH
Version Control with Mercurial and SSH Lasse Kliemann [email protected] Vorkurs Informatik 2010 Wishlist While working on a project, it is nice to... be able to switch back to older versions of
Introduction to Version Control with Git
Introduction to Version Control with Git Dark Cosmology Centre Niels Bohr Institute License All images adapted from Pro Git by Scott Chacon and released under license Creative Commons BY-NC-SA 3.0. See
Advantages of Amanda over Proprietary Backup
Advantages of Amanda over Proprietary Backup Gregory Grant Revision 02 Abstract This white paper discusses how Amanda compares to other backup products. It will help you understand some key Amanda differences,
