Obliterating History in Subversion Julian Foad October 2009.

Slides:



Advertisements
Similar presentations
TortoiseSVN By Group 1 Team B. Installing TortoiseSVN.
Advertisements

Intro to Version Control Have you ever …? Had an application crash and lose ALL of your work Made changes to a file for the worse and wished you could.
ENTERPRISE CLOUD DEVELOPMENT CollabNet TeamForge Git Integration Dharmesh Sheta CollabNet Engineering Office Potsdam, Germany History Protection 1.How.
SOFTWARE REVISION CONTROL WITH SUBVERSION Evan Dickinson & Andy Huang – 9 March 2011.
Revision Control Systems Amin Tootoonchian Kian Mirjalali.
Dedi Rahmawan Putra  Shared Document  Conventional Ways  Common Problems  What is TortoiseSVN  Advantages over another tools  Basic Concepts.
David Notkin Autumn 2009 CSE303 Lecture 22 Subversion is an open source version control system. Social Implications Friday version control system.
Using subversion COMP 2400 Prof. Chris GauthierDickey.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 12: Managing and Implementing Backups and Disaster Recovery.
CS311 – Lecture 08 Outline Subversion (SVN) *All information taken from “SVN Book” O’Reilly Lecture 081CS Operating Systems I.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Agenda  Overview  Configuring the database for basic Backup and Recovery  Backing up your database  Restore and Recovery Operations  Managing your.
SubVersioN – the new Central Service at DESY by Marian Gawron.
Course 6425A Module 9: Implementing an Active Directory Domain Services Maintenance Plan Presentation: 55 minutes Lab: 75 minutes This module helps students.
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
1 Topics for this Lecture Software maintenance in general Source control systems (intro to svn)
Subversion. What is Subversion? A Version Control System A successor to CVS and SourceSafe Essentially gives you a tracked, shared file system.
Recovery-Oriented Computing User Study Training Materials October 2003.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 12: Managing and Implementing Backups and Disaster Recovery.
Version Control with Subversion Quick Reference of Subversion.
With Mercurial and Progress.   Introduction  What is version control ?  Why use version control ?  Centralised vs. Distributed  Why Mercurial ?
Maintaining File Services. Shadow Copies of Shared Folders Automatically retains copies of files on a server from specific points in time Prevents administrators.
Prepared by: Steve Teo Contributors: Tong Huu Khiem.
Version control Using Git Version control, using Git1.
Windows Vista Inside Out Chapter 22 - Monitoring System Activities with Event Viewer Last modified am.
…using Git/Tortoise Git
Git workflow and basic commands By: Anuj Sharma. Why git? Git is a distributed revision control system with an emphasis on speed, data integrity, and.
Information Systems and Network Engineering Laboratory II DR. KEN COSH WEEK 1.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
Version Control Menggunakan TortoiseSVN
Subversion is a free/open-source version control system. It manages files and directories, and the changes made to them, over time. This allows you to.
By: Anuj Sharma. Topics covered:  GIT Introduction  GIT Benefits over different tools  GIT workflow  GIT server creation  How to use GIT for first.
Prepared by: Steve Teo Contributors: Tong Huu Khiem.
CVS – concurrent versions system AROC Guatemala July 19-23, 2010 Guatemala City, Guatemala.
L.T.E :: Learning Through Experimenting Using google-svn for MtM Docs Development Denis Thibault Version 3.2 Mar 12 th, 2009.
Sabriansyah R.A Version Control. The Repository Subversion adalah sistem tersentralisasi untuk informasi sharing Repository adalah pusat penyimpanan data.
Version Control and SVN ECE 297. Why Do We Need Version Control?
Slide 1 Running NEMO at ECMWF Slide 1 NEMO under Perforce at ECMWF Kristian S. Mogensen Last revised:
1 CSE 303 Lecture 19 Version control and Subversion ( svn ) slides created by Marty Stepp
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
© CGI Group Inc. User Guide Subversion client TortoiseSVN.
NALINI S. NAUTIYAL SYSTEM SOFTWARE DIVISION Subversion.
Software Testing and Maintenance 1 Subversion  Fundamental Concepts  Basic Usage.
DIGITAL REPOSITORIES CGDD Job Description… Senior Tools Programmer – pulled August 4 th, 2011 from Gamasutra.
Problem Solving With C++ SVN ( Version Control ) April 2016.
SWIM Project Meeting, Bloomington, IN September 2006 Working with the SWIM Code Repository David E. Bernholdt Oak Ridge National Laboratory
Git Girish Git VCS that I have used ClearCase, cvs, svn Happy p4 user.
Obliterate Julian Foad WANdisco or Let's Pretend I Didn't Do That.
Software Configuration Management -Subversion- RTLAB YuJin Park.
CompSci 230 Software Construction
Information Systems and Network Engineering Laboratory II
Concurrent Versions System User guide for CS408
Maintaining Windows Server 2008 File Services
Version Control with Subversion
SVN intro (review).
Version Control with Subversion (SVN)
Version control, using Git
Tortoise SubVersion Client Again
CSE 303 Concepts and Tools for Software Development
CVS revisions UML diagram
Subversion.
Concurrent Version Control
Software Version System Part1: Subversion at CERN
Version Control System
Introduction to Configuration Management
User Guide Subversion client TortoiseSVN
CVS Concurrent Versioning System
Version Control System - Git
Prof. Hilfinger CS164 Lecture 4
Version Control with Git
Presentation transcript:

Obliterating History in Subversion Julian Foad October 2009

2 of XX Who am I? Julian Foad ► WANdisco Subversion: obliterate ► CollabNet Subversion: tree conflicts ► Embedded software engineer user & administrator of version control ► Subversion volunteer: many small features & fixes

3 of XX Purpose ► Tell you about this feature ► Find out what you want it to do

4 of XX Contents Why? How? - user's POV Architecture - client/server Client Issues - WC Authorization Audit Trail

5 of XX Contents Why? How? Architecture Client Issues Authorization Audit Trail

6 of XX Why? ► Requested since pre-1.0 by many on mailing list over the years by big companies & organisations ► Reasons stated three groups of reasons

7 of XX Why? ► Alternatives... can do in CVS (crudely), P4, CC,... in Svn, authz can hide files ► Counter-arguments... is not “pure” version control and “store only latest” is not VC at all is “dangerous” if mis-used (audit trail)

8 of XX Why? How? Architecture Client Issues Authorization Audit Trail Why? Hide data Remove accidental large addition old, obsolete data Need only latest version Non-goals

9 of XX Why? Hide data ► What happened? accidentally committed private data a customer's private data copyrighted material deleted it soon afterwards ► What's needed? Hide that file first FILE or may require swift action then plan the permanent fix.

10 of XX Why? Recover Space ► What happened? added large, generated files, imported to wrong repository, split the repos, a large project became redundant. ► What's needed? Reclaim server disk space. Can be a planned event.

11 of XX B/src B/obj C/src C/obj A/src A/obj Why? Latest Version ► Project structure: moduleA/ src/... obj/... moduleB/... moduleC/... test update commit build work on A Doesn't need to build B or C

12 of XX B/src B/obj C/src C/obj A/src A/obj test update commit build work on A Why? Latest Version ► What's happening? frequently revising a large file never need old versions of it ► What's needed? configure to store only latest version make “update” work without deltas ► Why? convenience (could do outside svn)

13 of XX Non-goals ► Non-goals to undo (roll back) a recent commit to tidy up history after an unwanted change has been done and undone ► Documentation should steer users to best practices for these tasks

14 of XX Contents Why? How? Architecture Client Issues Authorization Audit Trail

15 of XX How? Granularity ► One file (all revisions) ► One revision (all changes) ► One file in one revision ► Some text within a file

16 of XX Obliteration Set: Client Library Repository How? Obliteration Set svn oblit -r50:53 –trace-history

17 of XX How? Delete Files ► Obliterate file r50 – delete it

18 of XX How? Undo Changes ► Obliterate file r50 – undo changes

19 of XX How? ► Obliterate file r50 – if it was new

20 of XX How? In other VCS ► CVS Delete the “,v” file (delete a file) ► Perforce “p4 protect” (can hide file-rev) “p4 obliterate” (delete file-rev) “p4 filetype” (latest N revs) ► ClearCase “rmversion” (delete a node-rev) “rmelement” (delete a node)

21 of XX How? In Subversion ► dump | svndumpfilter | load ► authz can hide paths

22 of XX Contents Why? How? Architecture Client Issues Authorization Audit Trail

23 of XX Overview ► Server or Client ► Tell Server “Delete r50”? ► FSFS or BDB Why? How? Architecture Client Issues Authorization Audit Trail

24 of XX Server or Client client server WC repo svnadmin

25 of XX Server or Client Client side (on-line) client server repo svnadmin WC svn obliterate...

26 of XX Server or Client Server side (off-line) client server WC repo svnadmin svnadmin obliterate...

27 of XX server client WC Server or Client Local (off-line) svnadmin repo svn obliterate file://... client

28 of XX Tell Server “Delete r50”? Present client-server protocol ► says “create a new HEAD revision” ► cannot say “modify revision 50” ► server doesn't know how to.

29 of XX Tell Server “Delete r50”? We need ► new function in server libraries perform a “primitive” obliteration ► new command in network protocol describe a “primitive” obliteration ► new UI in client interpret what the user wants send obliteration commands

30 of XX Contents Why? How? Architecture Client Issues Authorization Audit Trail

31 of XX Client Issues Coping with history changes ► Aim: do something simple & friendly not totally automatic recovery ► Support on server for helping clients to discover & recover

32 of XX Contents Why? How? Architecture Client Issues Authorization Audit Trail

33 of XX Authorization ► Pre-obliterate hook Must be installed (like pre-revprop-change) otherwise obliteration is DISABLED ► Inputs User Obliteration Set ► Result Allow Deny (optional error message)

34 of XX Contents Why? How? Architecture Client Issues Authorization Audit Trail

35 of XX Audit Trail ► Can still have an audit trail ► Leave “breadcrumbs” where & when something was obliterated who, when, reason. [Bob Jenkins] ► Put the info in rev-prop log file ► If paths are sensitive, just say the changes were “within directory X”

36 of XX End svn obliterate Any questions?