p2p bug tracking with sd - rmll2010.rmll.info/img/pdf/1-sd-intro.pdftrac sync rt sync hiveminder...

217
P2P Bug Tracking with SD http://syncwith.us jesse@bestpractical. com Jesse Vincent curl fsck.com/sd|perl; export PATH=~/sd/bin:$PATH; sd

Upload: others

Post on 18-Mar-2020

33 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

P2P Bug Tracking with SD

http://syncwith.us

[email protected]

Jesse Vincent

curl fsck.com/sd|perl; export PATH=~/sd/bin:$PATH;sd

Page 2: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Hi!

Page 3: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

I’m Jesse (obra)

Page 4: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

I own a small software company

Page 5: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

(Best Practical)

Page 6: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

I’ve been making issue trackers

since 1995

Page 7: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Our softwarehas some bugs

Page 8: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

All softwarehas some bugs

Page 9: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

(All software is made of bugs)

Page 10: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

I spend a lot of time

on airplanes...

Page 11: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

...and at conferences with

bad wifi

Page 12: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

I need to keep track of our bugs

and our work

Page 13: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

I’m the boss

Page 14: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

I have no excuse for not doing my

work

Page 15: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

I need to keep track of our bugs

and our work even when I don’t have

Internet access

Page 16: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

I’ve tried everything

Page 17: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Text files

Page 18: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Text files inversion control

Page 19: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

IMAP Servers

Page 20: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

RSS Feeds

Page 21: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Running RT onmy laptop

Page 22: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Keeping browsers open

Page 23: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Nothing was quite right

Page 24: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

So we built SD

Page 25: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

SD is a Bug Tracker

Page 26: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

SD is a DistributedBug Tracker

Page 27: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

SD Features

P2P SyncTrac SyncRT SyncHiveminder SyncGitHub SyncGoogle Code SyncConflict ResolutionGit integrationDarcs integration

Tracks bugsCLIWeb UIScriptableWorks offlineAttachmentsCommentsCustomizable workflowCustom properties

Page 28: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Principles of distributed computing

Page 29: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Bill Joy, Tom Lyon, Peter

Deutsch and James Gosling created these

Page 30: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 31: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

The network is reliable

Page 32: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Latency is zero

Page 33: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Bandwidth is infinite

Page 34: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

The network is secure

Page 35: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Transport cost is zero

Page 36: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

The network is homogeneous

Page 37: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Topology doesn't change

Page 38: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

There is one administrator

Page 39: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

I didn’t make those up

Page 40: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Bill Joy, Tom Lyon, Peter Deutsch and James Gosling did

Page 41: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Principles of distributed computing

Fallacies

Fallacies

Page 42: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Those are all LIES

Page 43: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

The network is not reliable

Page 44: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

SD isn’t network-dependent

Page 45: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Latency hurts

Page 46: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

SD runs at the edge

Page 47: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Bandwidth is always

a problem

Page 48: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

SD knows which changesets you’ve

already seen

Page 49: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

The network is insecure

Page 50: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

SD doesn’t depend on a network security layer

Page 51: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Topology is unpredictable

and fluid

Page 52: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

SD is topology-agnostic

Page 53: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

There is no administrator

Page 54: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

(But there are many people who

think they’re administrators)

Page 55: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

SD lets you implement policy in the centralized

systems it syncs to

Page 56: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Transportcosts money

Page 57: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

SD doesn’t use much bandwidth &

can use non-network substrates

Page 58: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

The network is heterogeneous

Page 59: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

SD is designed to sync to foreign

systems

Page 60: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

SD runs locally

Page 61: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

SD plays wellwith others

Page 62: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

It syncs the way you do

Page 63: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Clone a project’s bug

database (over HTTP)

Page 64: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Work offline

Page 65: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Pull changesets from anyone you

work with

Page 66: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Publish your database replica

with rsync

Page 67: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Topology doesn’t matter...

Page 68: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Don’t worry

Page 69: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

It won’t break

Page 70: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

SD learns how to resolve each

conflict...

Page 71: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

...based on how everyone else

resolves it

Page 72: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Using SD (CLI)

Page 73: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Getting Started

Page 74: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

SD Shell

$ sd

Page 75: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

./

Page 76: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Getting help

$ sd help

Page 77: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 78: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Creating a new project

$ sd init

Page 79: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 80: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Project settings

$ sd settings

Page 81: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 82: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Config file

$ sd config

Page 83: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 84: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Create a bug

$ sd ticket create

Page 85: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 86: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Listing bugs

$ sd ticket list

Page 87: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 88: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 89: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Show a bug

$ sd ticket show

Page 90: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 91: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Update a bug

$ sd ticket update

Page 92: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 93: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 94: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 95: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Log

$ sd log

Page 96: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 97: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 98: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Git Integration

$ git sd

Page 99: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 100: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Using SD (Web)

Page 101: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Web? Isn’t SD anoffline tool?

Page 102: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Local microserver

Page 103: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

$ sd browser

Page 104: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Home

Page 105: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 106: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Create a ticket

Page 107: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 108: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Search

Page 109: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 110: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Show a bug

Page 111: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 112: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Update a bug

Page 113: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 114: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Comments

Page 115: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 116: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

History

Page 117: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 118: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Working with others

Page 119: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Working with others

(Using SD)

Page 120: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Any topology

Page 121: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

It doesn’t matter who you sync with

Page 122: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

You get all the updates

eventually

Page 123: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Cloning

$ sd clone

Page 124: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

clone makes a replica of someone

else’s database

Page 125: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 126: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 127: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Pulling

$ sd pull

Page 128: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

pull imports unseen changes

from another database replica

Page 129: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 130: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Publishing

$ sd publish

Page 131: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

publish writes out a copy of your

database replica for sharing

Page 132: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

(As SD changesets and static HTML)

Page 133: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 134: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Hackathon mode(using Bonjour)

Page 135: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Publish your replica

$ sd server

Page 136: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Pull updates

$ sd pull --local

Page 137: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Working with others

(Using other systems)

Page 138: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

But you already have a bug

tracker?

Page 139: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

No Problem!

Page 140: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

I use at leasttwo others.

Page 141: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

I wrote at leasttwo others.

Page 142: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

We designed SD talk to foreign bug

trackers

Page 143: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

RT

Page 144: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

RT::Client::REST(By DMITRI, DAMS & AMS)

Page 145: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Hiveminder

Page 146: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Net::Jifty(by SARTAK)

Page 147: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Trac

Page 148: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Net::Trac(by JESSE & TSIBLEY)

Page 149: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Google Code

Page 150: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Net::Google::Code(by SUNNAVY and FAYLAND)

Page 151: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

GitHub

Page 152: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Net::GitHub(by FAYLAND)

Page 153: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Redmine

Page 154: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Net::Redmine(by GUGOD)

Page 155: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Want to help with Bugzilla, Jira, FogBugz or

something else?

Page 156: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Work with

foreign replicas in a Star Topology

Page 157: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

An SD node can act as a gateway

X

Page 158: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Clone

$ sd clone

Page 159: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Clone from Google Code

$ sd clone --from gcode:k9mail

Page 160: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Clone from RT

$ sd clone --from "rt:https://rt.cpan.org|DBI|"

Page 161: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Clone from Trac

$ sd clone --from trac:https://trac.parrot.org/parrot

Page 162: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Clone from GitHub

$ git sd clone --from github:miyagawa/remedie

Page 163: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

SD reverse engineers a

database history

Page 164: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Pull

$ sd pull

Page 165: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

SD reverse engineers a partial database history

Page 166: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Push

$ sd push

Page 167: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

SD figures out local updates and

sends them upstream

Page 168: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

(Then it does a bunch of book-

keeping)

Page 169: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

So what’s that all look like in the real

world?

Page 170: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Installing SD

Page 171: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

It’s time to get SD up and running

Page 172: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

SD is in Perl

Page 173: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

SD uses 45-90 CPAN modules

Page 174: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 175: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Are you afraid?

Page 176: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Don’t be

Page 177: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

I have a novel idea for

a Perl application

Page 178: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

One-tweet install.

Page 179: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

curl fsck.com/sd|perl; export PATH=~/sd/bin:$PATH; sd

Page 180: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

You’ll need:

curl, perl 5.8, C compiler

Page 181: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

You won’t need:

CPAN

Page 182: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

You won’t need:

to answer prompts

Page 183: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

You won’t need:

to fix dependencies

Page 184: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

SD is in Perl

Page 185: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

SD uses CPAN modules.

Page 186: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

This is a blessing.

Page 187: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

This is a curse.

Page 188: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

CPAN=

Dependency Hell

Page 189: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

When we first built SD, we used anything we thought was

useful.

Page 190: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

(The first version of SD used a SVN

backend)

Page 191: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

The first ~useful version of SD:

Page 192: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 193: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

123 Dependencies

Page 194: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

...a couple hours later

Page 195: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 196: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

54 Dependencies

Page 197: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Only one needs a compiler.

Page 198: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Shipwright gives us one-command

install

Page 199: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

curl fsck.com/sd|perl export PATH=$PATH:~/sd/bin

Page 200: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

What’s that do?

Page 201: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

curl

Page 202: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

perl

Page 203: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

$ head /Library/WebServer/Documents/sd

open (my $tar,'|tar xz 2>/dev/null');while (<DATA>) { print $tar $_; }close $tar;exec("cd sd-build; bin/shipwright-builder \ --install-base=$ENV{HOME}/sd");__DATA__?I?Isd-build.tar?<is?F???_1? 䀌yH?"#䀌${U???H?eH.....................................................................

Page 204: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Shipwright installs a few Perl modules...

Page 205: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want
Page 206: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

...in order

Page 207: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Scalar-List-Utils String-BufferStack Class-Accessor Class-Data-Inheritable Tree-DAG_Node Test-Simple Sub-Uplevel Test-Exception Array-Compare Test-Warn Template-Declare URI HTTP-Server-Simple Params-Util Class-Inspector File-ShareDir DBI DBD-SQLite HTML-Tagset HTML-Parser HTML-Tree Crypt-SSLeay JSON YAML-Syck JSON-XS JSON-DWIW JSON-Any Mouse Any-Moose Compress-Raw-Zlib Compress-Raw-Bzip2 IO-Compress libwww-perl HTTP-Response-Encoding WWW-Mechanize WWW-Mechanize-GZip File-Slurp Test-MockModule Net-GitHub MIME-Types Class-Singleton Params-Validate version ExtUtils-CBuilder ExtUtils-ParseXS Test-Harness File-Temp Module-Build DateTime-TimeZone List-MoreUtils DateTime-Locale DateTime File-MMagic Net-Google-Code Term-ReadLine-Perl Digest-SHA1 Digest-HMAC Net-IP Net-DNS Net-Bonjour TermReadKey Data-UUID XML-Atom-SimpleFeed Digest-SHA Exporter-Lite IPC-Run3 MIME-Base64-URLSafe Data-UUID-Base64URLSafe Sub-Install Data-OptList Sub-Exporter Path-Dispatcher Module-Pluggable Time-Progress Carp-Assert Proc-InvokeEditor Test-HTTP-Server-Simple Module-Refresh Carp-Assert-More Test-LongString Test-WWW-Mechanize Test-Script-Run prophet.git Devel-StackTrace Exception-Class Error RT-Client-REST Email-Address YAML Path-Class Clone Hash-Merge UNIVERSAL-isa UNIVERSAL-can Test-MockObject Net-Jifty Lingua-EN-Inflect Text-CSV Net-Trac boolean Time-Piece Test-MockTime DateTime-Format-Natural

Page 208: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

(104 dists with our sync plugins)

Page 209: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

What’s wrong with SD?

Page 210: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

$ sd clone --from http://fsck.com/~jesse/sd-bugs

Page 211: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Don’t want to install SD?

Page 212: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Point your browser athttp://fsck.com/~jesse/sd-

bugs/html

Page 213: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

What’s next?

Page 214: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Indexing

Page 215: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

GPG-signed changesets

Page 216: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Actually releasing 1.0

Page 217: P2P Bug Tracking with SD - RMLL2010.rmll.info/IMG/pdf/1-sd-intro.pdfTrac Sync RT Sync Hiveminder Sync GitHub Sync Google Code Sync Conflict Resolution ... Net::Redmine (by GUGOD) Want

Thanks!

Questions?

curl fsck.com/sd | perl

http://[email protected]