SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
Intro                  Technical details                 Using vcsh             Outlook   Outro




                                                      vcsh
          manage config files in $HOME via fake bare git repositories


                                      Richard Hartmann,
                              RichiH@{freenode,OFTC,IRCnet},
                                 richih.mailinglist@gmail.com



                                                 2012-02-04



Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com
vcsh
Intro                  Technical details                 Using vcsh             Outlook   Outro




Outline

        1   Intro

        2   Technical details

        3   Using vcsh

        4   Outlook

        5   Outro



Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com
vcsh
Intro                  Technical details                 Using vcsh             Outlook   Outro




Outline

        1   Intro

        2   Technical details

        3   Using vcsh

        4   Outlook

        5   Outro



Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com
vcsh
Intro                  Technical details                 Using vcsh             Outlook   Outro




Who am I?
              Project & Network Operations Manager at Globalways AG
              freenode & OFTC staff
              Passionate about FLOSS
              Author of vcsh




Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com
vcsh
Intro                  Technical details                 Using vcsh             Outlook   Outro




What is git?
              Version control system
              Distributed
                     No need for central repository
                     Allows you to commit while offline
              Full history in every checkout
              Best version control system available (imo...)




Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com
vcsh
Intro                  Technical details                 Using vcsh             Outlook   Outro




Outline

        1   Intro

        2   Technical details

        3   Using vcsh

        4   Outlook

        5   Outro



Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com
vcsh
Intro                  Technical details                 Using vcsh             Outlook   Outro




What is vcsh?
              Implemented in POSIX shell; portable
              ”version control shell” or ”version control system $HOME”
              Based on git
                     git unable to maintain several working copies in one
                     directory
                     Sucks if you want to keep your configs in git
              vcsh uses fake bare git repositories to work around this
              Think of it as an extension to git




Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com
vcsh
Intro                  Technical details                 Using vcsh             Outlook   Outro




fake bare.. what?
              Normal git repo:
                     working copy in $GIT WORK TREE
                     git data in $GIT WORK TREE/.git aka $GIT DIR
              Bare git repo:
                     git data in $GIT DIR
                     no $GIT WORK TREE
              Fake bare git repo:
                     working copy in $GIT WORK TREE
                     git data in $GIT DIR
                     $GIT WORK TREE == $HOME
                     $GIT DIR == $XDG CONFIG HOME/vcsh/repo.d/$repo.vcsh
                     core.bare = false



Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com
vcsh
Intro                  Technical details                 Using vcsh             Outlook   Outro




Problems with fake bare git repos
              Fake bare repos are messy to set up and use
              Reason why git disallows shared $GIT WORK TREE:
              complexity due to context-dependency
              Mistakes lead to confusion or data loss; imagine
              $GIT WORK TREE set and
                     git     add
                     git     reset --hard HEAD~1
                     git     checkout -- *
                     git     clean -f




Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com
vcsh
Intro                  Technical details                 Using vcsh             Outlook   Outro




Solution: vcsh
              Wraps around git
              Hides complexity and does sanity checks
              Several git repos checked out into $HOME at once
                     One repo for zsh, vim, mplayer, etc
                     Enables specific subsets of repos per host
              Manages complete repo life-cycle




Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com
vcsh
Intro                  Technical details                 Using vcsh             Outlook   Outro




Outline

        1   Intro

        2   Technical details

        3   Using vcsh

        4   Outlook

        5   Outro



Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com
vcsh
Intro                  Technical details                 Using vcsh             Outlook   Outro




Create new repo

        # create new repo
        vcsh init vim
        # add files to it
        vcsh run vim git add .vim .vimrc
        # commit using shorthand form
        vcsh vim commit
        # push using longhand form
        vcsh run vim git push




Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com
vcsh
Intro                  Technical details                 Using vcsh             Outlook   Outro




Made-up life-cycle

        # clone repo into new name zsh
        vcsh clone git://github.com/RichiH/zshrc.git zsh
        # optionally update legacy repos
        vcsh setup zsh
        # display all files managed by this repo
        vcsh run zsh git ls-files
        # rename repo just because
        vcsh rename zsh zshrc
        # delete repo
        vcsh delete zshrc



Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com
vcsh
Intro                  Technical details                 Using vcsh             Outlook   Outro




run vs enter

        # do everything from outside
        vcsh run zsh git add .zshrc
        vcsh run zsh git commit
        vcsh run zsh git push
        # the same, but from within
        vcsh enter zsh
        git add .zshrc
        git commit
        git push
        exit



Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com
vcsh
Intro                  Technical details                 Using vcsh             Outlook   Outro




Playing nice with others
              shells can display exported ENV in $PROMPT
              vcs info
              mr via plugin, mainline soon
              git-annex to manage non-configuration files
              Simple but powerful hook system




Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com
vcsh
Intro                  Technical details                 Using vcsh             Outlook   Outro




Outline

        1   Intro

        2   Technical details

        3   Using vcsh

        4   Outlook

        5   Outro



Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com
vcsh
Intro                  Technical details                 Using vcsh             Outlook   Outro




Future work
              More unit tests
              Get vcsh into more distributions
              Spread awareness to reach critical mass
              Maybe extend support to subversion, mercurial, etc




Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com
vcsh
Intro                  Technical details                 Using vcsh             Outlook   Outro




Outline

        1   Intro

        2   Technical details

        3   Using vcsh

        4   Outlook

        5   Outro



Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com
vcsh
Intro                  Technical details                 Using vcsh             Outlook   Outro




Where to get it
              git clone git://github.com/RichiH/vcsh.git
              Native packages for
                     Debian
                     Ubuntu
                     Arch Linux (AUR)
              Small bug in README.md, use v0.20120203 or git




Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com
vcsh
Intro                  Technical details                 Using vcsh             Outlook   Outro




Thanks!



                                           Thanks for listening!


            Questions? Follow me outside when my time-slot is over.


                    See slide footer for further contact Information.




Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com
vcsh

Mais conteúdo relacionado

Destaque

Case Study: Barney's Beanery Photo Contest
Case Study: Barney's Beanery Photo ContestCase Study: Barney's Beanery Photo Contest
Case Study: Barney's Beanery Photo ContestMomentFeed
 
20160112ファンタジスタ発表資料
20160112ファンタジスタ発表資料20160112ファンタジスタ発表資料
20160112ファンタジスタ発表資料Hiroki Shimono
 
Caroline surges the ultimate gift
Caroline surges the ultimate giftCaroline surges the ultimate gift
Caroline surges the ultimate giftRochesspp
 
MomentFeed - The Social Marketing Platform for Mobile
MomentFeed - The Social Marketing Platform for MobileMomentFeed - The Social Marketing Platform for Mobile
MomentFeed - The Social Marketing Platform for MobileMomentFeed
 
Объемы рынка промоиндустрии
Объемы рынка промоиндустрииОбъемы рынка промоиндустрии
Объемы рынка промоиндустрииalladvertising
 
メガネはどうやってファッション化したのか
メガネはどうやってファッション化したのかメガネはどうやってファッション化したのか
メガネはどうやってファッション化したのかHiroki Shimono
 
As irmandades da fala2
As irmandades da fala2As irmandades da fala2
As irmandades da fala2ShelleyAlvAlv
 

Destaque (20)

Indices 06 jun2013054001
Indices 06 jun2013054001Indices 06 jun2013054001
Indices 06 jun2013054001
 
Indices 13 jun2013052304
Indices 13 jun2013052304Indices 13 jun2013052304
Indices 13 jun2013052304
 
Case Study: Barney's Beanery Photo Contest
Case Study: Barney's Beanery Photo ContestCase Study: Barney's Beanery Photo Contest
Case Study: Barney's Beanery Photo Contest
 
Indices 28 oct2014063556
Indices 28 oct2014063556Indices 28 oct2014063556
Indices 28 oct2014063556
 
20160112ファンタジスタ発表資料
20160112ファンタジスタ発表資料20160112ファンタジスタ発表資料
20160112ファンタジスタ発表資料
 
Caroline surges the ultimate gift
Caroline surges the ultimate giftCaroline surges the ultimate gift
Caroline surges the ultimate gift
 
Indices 02 jan 2014
Indices 02 jan 2014Indices 02 jan 2014
Indices 02 jan 2014
 
Indices 03 feb 2014
Indices 03 feb 2014Indices 03 feb 2014
Indices 03 feb 2014
 
Indices 21 aug2013063741
Indices 21 aug2013063741Indices 21 aug2013063741
Indices 21 aug2013063741
 
Indices 30 Jan 2014
Indices 30 Jan 2014 Indices 30 Jan 2014
Indices 30 Jan 2014
 
MomentFeed - The Social Marketing Platform for Mobile
MomentFeed - The Social Marketing Platform for MobileMomentFeed - The Social Marketing Platform for Mobile
MomentFeed - The Social Marketing Platform for Mobile
 
Объемы рынка промоиндустрии
Объемы рынка промоиндустрииОбъемы рынка промоиндустрии
Объемы рынка промоиндустрии
 
メガネはどうやってファッション化したのか
メガネはどうやってファッション化したのかメガネはどうやってファッション化したのか
メガネはどうやってファッション化したのか
 
BOLT Production
BOLT ProductionBOLT Production
BOLT Production
 
Indices 20 sep2013064724
Indices 20 sep2013064724Indices 20 sep2013064724
Indices 20 sep2013064724
 
Finalaya daily wrap_31oct2013
Finalaya daily wrap_31oct2013Finalaya daily wrap_31oct2013
Finalaya daily wrap_31oct2013
 
Indices 22 oct2013071428
Indices 22 oct2013071428Indices 22 oct2013071428
Indices 22 oct2013071428
 
Indices 17 sep2013073627
Indices 17 sep2013073627Indices 17 sep2013073627
Indices 17 sep2013073627
 
Indices 13 May 2014
Indices 13 May 2014Indices 13 May 2014
Indices 13 May 2014
 
As irmandades da fala2
As irmandades da fala2As irmandades da fala2
As irmandades da fala2
 

Semelhante a FOSDEM 2012 vcsh talk

FOSDEM 2012 git-annex talk
FOSDEM 2012 git-annex talkFOSDEM 2012 git-annex talk
FOSDEM 2012 git-annex talkRichiH
 
Gerrit linuxtag2011
Gerrit linuxtag2011Gerrit linuxtag2011
Gerrit linuxtag2011thkoch
 
Red Hat Developer Day London: Advanced Java & JBoss in the Cloud
Red Hat Developer Day London: Advanced Java & JBoss in the Cloud Red Hat Developer Day London: Advanced Java & JBoss in the Cloud
Red Hat Developer Day London: Advanced Java & JBoss in the Cloud Eric D. Schabell
 
Enterprise git
Enterprise gitEnterprise git
Enterprise gitPedro Melo
 
Git workflows (Basics)
Git workflows (Basics)Git workflows (Basics)
Git workflows (Basics)Roman Kuba
 
From Code to Cloud - PHP on Red Hat's OpenShift
From Code to Cloud - PHP on Red Hat's OpenShiftFrom Code to Cloud - PHP on Red Hat's OpenShift
From Code to Cloud - PHP on Red Hat's OpenShiftEric D. Schabell
 
Codemotion 2012 Rome - An OpenShift Primer
Codemotion 2012 Rome - An OpenShift PrimerCodemotion 2012 Rome - An OpenShift Primer
Codemotion 2012 Rome - An OpenShift PrimerEric D. Schabell
 
JBUG Netherlands Openshift Primer
JBUG Netherlands Openshift PrimerJBUG Netherlands Openshift Primer
JBUG Netherlands Openshift PrimerEric D. Schabell
 
Gitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTreeGitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTreeTeerapat Khunpech
 
Whether you should migrate to git
Whether you should migrate to gitWhether you should migrate to git
Whether you should migrate to gitAmit Anand
 
Hardening Your CI/CD Pipelines with GitOps and Continuous Security
Hardening Your CI/CD Pipelines with GitOps and Continuous SecurityHardening Your CI/CD Pipelines with GitOps and Continuous Security
Hardening Your CI/CD Pipelines with GitOps and Continuous SecurityWeaveworks
 
Building a fully API-based platform on top of cPanel
Building a fully API-based platform on top of cPanelBuilding a fully API-based platform on top of cPanel
Building a fully API-based platform on top of cPanelDominic Lüchinger
 
Walk through an enterprise Linux migration
Walk through an enterprise Linux migrationWalk through an enterprise Linux migration
Walk through an enterprise Linux migrationRogue Wave Software
 
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...OpenCity Community
 
Git 101, or, how to sanely manage your Koha customizations
Git 101, or, how to sanely manage your Koha customizationsGit 101, or, how to sanely manage your Koha customizations
Git 101, or, how to sanely manage your Koha customizationsIan Walls
 

Semelhante a FOSDEM 2012 vcsh talk (20)

FOSDEM 2012 git-annex talk
FOSDEM 2012 git-annex talkFOSDEM 2012 git-annex talk
FOSDEM 2012 git-annex talk
 
Gerrit linuxtag2011
Gerrit linuxtag2011Gerrit linuxtag2011
Gerrit linuxtag2011
 
Red Hat Developer Day London: Advanced Java & JBoss in the Cloud
Red Hat Developer Day London: Advanced Java & JBoss in the Cloud Red Hat Developer Day London: Advanced Java & JBoss in the Cloud
Red Hat Developer Day London: Advanced Java & JBoss in the Cloud
 
빈스톡 첫인상 with Git
빈스톡 첫인상 with Git빈스톡 첫인상 with Git
빈스톡 첫인상 with Git
 
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
 
Enterprise git
Enterprise gitEnterprise git
Enterprise git
 
Git workflows (Basics)
Git workflows (Basics)Git workflows (Basics)
Git workflows (Basics)
 
From Code to Cloud - PHP on Red Hat's OpenShift
From Code to Cloud - PHP on Red Hat's OpenShiftFrom Code to Cloud - PHP on Red Hat's OpenShift
From Code to Cloud - PHP on Red Hat's OpenShift
 
Codemotion 2012 Rome - An OpenShift Primer
Codemotion 2012 Rome - An OpenShift PrimerCodemotion 2012 Rome - An OpenShift Primer
Codemotion 2012 Rome - An OpenShift Primer
 
JBUG Netherlands Openshift Primer
JBUG Netherlands Openshift PrimerJBUG Netherlands Openshift Primer
JBUG Netherlands Openshift Primer
 
Gitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTreeGitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTree
 
Git
GitGit
Git
 
Whether you should migrate to git
Whether you should migrate to gitWhether you should migrate to git
Whether you should migrate to git
 
Hardening Your CI/CD Pipelines with GitOps and Continuous Security
Hardening Your CI/CD Pipelines with GitOps and Continuous SecurityHardening Your CI/CD Pipelines with GitOps and Continuous Security
Hardening Your CI/CD Pipelines with GitOps and Continuous Security
 
Roslyn on GitHub
Roslyn on GitHubRoslyn on GitHub
Roslyn on GitHub
 
Building a fully API-based platform on top of cPanel
Building a fully API-based platform on top of cPanelBuilding a fully API-based platform on top of cPanel
Building a fully API-based platform on top of cPanel
 
Walk through an enterprise Linux migration
Walk through an enterprise Linux migrationWalk through an enterprise Linux migration
Walk through an enterprise Linux migration
 
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
 
Keynote: O PHP, Where Art Thou?
Keynote: O PHP, Where Art Thou?Keynote: O PHP, Where Art Thou?
Keynote: O PHP, Where Art Thou?
 
Git 101, or, how to sanely manage your Koha customizations
Git 101, or, how to sanely manage your Koha customizationsGit 101, or, how to sanely manage your Koha customizations
Git 101, or, how to sanely manage your Koha customizations
 

Último

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 

Último (20)

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 

FOSDEM 2012 vcsh talk

  • 1. Intro Technical details Using vcsh Outlook Outro vcsh manage config files in $HOME via fake bare git repositories Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com 2012-02-04 Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com vcsh
  • 2. Intro Technical details Using vcsh Outlook Outro Outline 1 Intro 2 Technical details 3 Using vcsh 4 Outlook 5 Outro Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com vcsh
  • 3. Intro Technical details Using vcsh Outlook Outro Outline 1 Intro 2 Technical details 3 Using vcsh 4 Outlook 5 Outro Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com vcsh
  • 4. Intro Technical details Using vcsh Outlook Outro Who am I? Project & Network Operations Manager at Globalways AG freenode & OFTC staff Passionate about FLOSS Author of vcsh Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com vcsh
  • 5. Intro Technical details Using vcsh Outlook Outro What is git? Version control system Distributed No need for central repository Allows you to commit while offline Full history in every checkout Best version control system available (imo...) Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com vcsh
  • 6. Intro Technical details Using vcsh Outlook Outro Outline 1 Intro 2 Technical details 3 Using vcsh 4 Outlook 5 Outro Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com vcsh
  • 7. Intro Technical details Using vcsh Outlook Outro What is vcsh? Implemented in POSIX shell; portable ”version control shell” or ”version control system $HOME” Based on git git unable to maintain several working copies in one directory Sucks if you want to keep your configs in git vcsh uses fake bare git repositories to work around this Think of it as an extension to git Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com vcsh
  • 8. Intro Technical details Using vcsh Outlook Outro fake bare.. what? Normal git repo: working copy in $GIT WORK TREE git data in $GIT WORK TREE/.git aka $GIT DIR Bare git repo: git data in $GIT DIR no $GIT WORK TREE Fake bare git repo: working copy in $GIT WORK TREE git data in $GIT DIR $GIT WORK TREE == $HOME $GIT DIR == $XDG CONFIG HOME/vcsh/repo.d/$repo.vcsh core.bare = false Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com vcsh
  • 9. Intro Technical details Using vcsh Outlook Outro Problems with fake bare git repos Fake bare repos are messy to set up and use Reason why git disallows shared $GIT WORK TREE: complexity due to context-dependency Mistakes lead to confusion or data loss; imagine $GIT WORK TREE set and git add git reset --hard HEAD~1 git checkout -- * git clean -f Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com vcsh
  • 10. Intro Technical details Using vcsh Outlook Outro Solution: vcsh Wraps around git Hides complexity and does sanity checks Several git repos checked out into $HOME at once One repo for zsh, vim, mplayer, etc Enables specific subsets of repos per host Manages complete repo life-cycle Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com vcsh
  • 11. Intro Technical details Using vcsh Outlook Outro Outline 1 Intro 2 Technical details 3 Using vcsh 4 Outlook 5 Outro Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com vcsh
  • 12. Intro Technical details Using vcsh Outlook Outro Create new repo # create new repo vcsh init vim # add files to it vcsh run vim git add .vim .vimrc # commit using shorthand form vcsh vim commit # push using longhand form vcsh run vim git push Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com vcsh
  • 13. Intro Technical details Using vcsh Outlook Outro Made-up life-cycle # clone repo into new name zsh vcsh clone git://github.com/RichiH/zshrc.git zsh # optionally update legacy repos vcsh setup zsh # display all files managed by this repo vcsh run zsh git ls-files # rename repo just because vcsh rename zsh zshrc # delete repo vcsh delete zshrc Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com vcsh
  • 14. Intro Technical details Using vcsh Outlook Outro run vs enter # do everything from outside vcsh run zsh git add .zshrc vcsh run zsh git commit vcsh run zsh git push # the same, but from within vcsh enter zsh git add .zshrc git commit git push exit Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com vcsh
  • 15. Intro Technical details Using vcsh Outlook Outro Playing nice with others shells can display exported ENV in $PROMPT vcs info mr via plugin, mainline soon git-annex to manage non-configuration files Simple but powerful hook system Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com vcsh
  • 16. Intro Technical details Using vcsh Outlook Outro Outline 1 Intro 2 Technical details 3 Using vcsh 4 Outlook 5 Outro Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com vcsh
  • 17. Intro Technical details Using vcsh Outlook Outro Future work More unit tests Get vcsh into more distributions Spread awareness to reach critical mass Maybe extend support to subversion, mercurial, etc Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com vcsh
  • 18. Intro Technical details Using vcsh Outlook Outro Outline 1 Intro 2 Technical details 3 Using vcsh 4 Outlook 5 Outro Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com vcsh
  • 19. Intro Technical details Using vcsh Outlook Outro Where to get it git clone git://github.com/RichiH/vcsh.git Native packages for Debian Ubuntu Arch Linux (AUR) Small bug in README.md, use v0.20120203 or git Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com vcsh
  • 20. Intro Technical details Using vcsh Outlook Outro Thanks! Thanks for listening! Questions? Follow me outside when my time-slot is over. See slide footer for further contact Information. Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com vcsh