Effective packaging. Petr Uzel. L3/Maintenance ptr IRC
|
|
- Ambrose Allison
- 5 years ago
- Views:
Transcription
1 Effective packaging Petr Uzel L3/Maintenance ptr IRC
2 About this talk collection of tips and tricks that make (some) package maintenance tasks more efficient no rocket science, no cool technologies based on experience there are definitely better ways 2/1 c Novell Inc. All Right Reserved
3 Which package is broken? given a bug (e.g. /path/to/bin crashes), sometimes it is not obvious which package should be fixed bugzilla does not track package info rpm -qf /path/to/file gives name of the RPM we need source package, not RPM $ rpm -qf /lib64/libblkid.so.1 libblkid x86_64 $ osc search -s --package blkid No matches found for blkid in packages 3/1 c Novell Inc. All Right Reserved
4 Source package name let s ask RPM: $ rpm -q --queryformat %{SOURCERPM}\n \ libblkid x86_64 util-linux src.rpm Everything combined together (file source package) $ rpm -q --queryformat %{SOURCERPM}\n \ $(rpm -qf /lib64/libblkid.so.1) \ sed -e s/\(^.*\)-.*-.*src.rpm/\1/ util-linux Where did I install the package from? $ rpm -q --queryformat %{DISTURL}\n util-linux obs://build.opensuse.org/home:puzel:staging/opensuse_11.3/6a[cut] 4/1 c Novell Inc. All Right Reserved
5 Get package source from OBS With branching: slow: osc branch opensuse:factory foo; osc co home:*:branches:prj faster: osc branch --checkout opensuse:factory foo fastest: osc getpac foo or osc bco foo hyperspeed: osc getpac + osc bash completion Without branching: function show_devel { osc meta pkg opensuse:factory ${1} fgrep devel } go directly to devel project 5/1 c Novell Inc. All Right Reserved
6 Building package osc build in package working copy usually does the right thing more control: osc build [OPTS] REPOSITORY ARCH SPECFILE REPOSITORY, ARCH and SPECFILE detected automatically if not specified list REPO-ARCH combinations: osc repos [PRJ] 6/1 c Novell Inc. All Right Reserved
7 osc build options build debuginfo and debugsource packages: osc build --debuginfo/-d skip post build checks: osc build --nochecks delete old build root before build: osc build --clean use alternative project for build: osc --alternative-project=opensuse:factory use ccache to speed up build: osc build --ccache 7/1 c Novell Inc. All Right Reserved
8 Use custom RPMs in buildroot foo depends on bar, which is not in buildservice yet but we have bar.rpm osc build -p/--prefer-pkgs DIR: prefer packages from DIR when installing buildroot $ cd foo $ osc build -p /path/to_dir_with_bar.rpm foo.spec osc build -x/--extra-pkgs PKG: add this package to buildroot 8/1 c Novell Inc. All Right Reserved
9 Buildroot tips by default, buildroot is /var/tmp/build-root OSC BUILD ROOT overrides the default $ export OSC_BUILD_ROOT=/var/tmp/build-root-temp $ osc build use when parallelly building multiple packages buildroot on tmpfs 5% speedup of parted build $ grep build-root /etc/fstab tmpfs /var/tmp/build-root tmpfs size=5g 0 0 9/1 c Novell Inc. All Right Reserved
10 Avoid password for building by default, osc build asks for root password; to avoid it set su-wrapper = sudo in ~/.oscrc add yourlogin ALL = (root) NOPASSWD: /usr/bin/build to sudoers file 10/1 c Novell Inc. All Right Reserved
11 Build log build log is stored in $OSC BUILD ROOT/.build.log slow: less /var/tmp/build-root/.build.log faster: osc lbl/localbuildlog respects $OSC BUILD ROOT from working copy osc rbl/remotebuildlog PRJ PKG REPO ARCH - get remote build log 11/1 c Novell Inc. All Right Reserved
12 Version update workflow 1 get package source 2 download tarball 3 verify tarball 4 repack tarball 5 check differences 6 adjust specfile 7 refresh patches 8 run test build 9 test the package 10 write changelog entry 11 commit 12/1 c Novell Inc. All Right Reserved
13 Downloading tarball with ncftp many projects publish tarballs on FTP sites ncftp is a command-line FTP client with bookmarking support useful to remember locations where upstream publishes tarballs supported by bash-completion $ ncftp ut<tab> -> ncftp util-linux ncftp... ls ncftp... get fil<tab> -> filename ncftpbookmarks: bookmark editor 13/1 c Novell Inc. All Right Reserved
14 Repacking tarball packaging policy requires the tarball to be bzip2-ed (or xz-ed) sometimes upstream provides only.tar.gz $ bznew parted-2.3.tar.gz $ ls *.bz2 parted-2.3.tar.bz2 14/1 c Novell Inc. All Right Reserved
15 What s new in tarball? Compare outputs from configure --help $ git clone git://gitorious.org/opensuse/pack-tools.git $ diffconf gnupg tar.bz2 gnupg tar.bz2 15/1 c Novell Inc. All Right Reserved
16 Change specfile usually just open specfile and increase the version number small helper: $ alias vs= vim -p *.spec in vim (normal mode), press Ctrl+A/Ctrl+X to increase/decrease numbers 16/1 c Novell Inc. All Right Reserved
17 Packaging with quilt about quilt Quilt allows you to easily manage large numbers of patches by keeping track of the changes each patch makes. Patches can be applied, un-applied, refreshed, and more. 17/1 c Novell Inc. All Right Reserved
18 Packaging with quilt quilt setup initialize a source tree from RPM spec file 1 unpack tarball 2 apply patches 3 un-apply patches (but remembers the series) IOW: %prep phase $ quilt setup -v foo.spec $ cd foo shortcut: $ alias qs= quilt setup -v *.spec 18/1 c Novell Inc. All Right Reserved
19 Packaging with quilt working with series of patches now we are in the directory created by quilt setup (unpacked tarball) none of the patches is applied (but quilt knows about them) quilt push applies one patch (-a: all patches) quilt pop un-applies one patch (-a: all patches) quilt top prints name of the last applied patch quilt refresh refreshes last patch (so that it applies cleanly, without fuzz and offsets) quilt series prints the names of all patches 19/1 c Novell Inc. All Right Reserved
20 Packaging with quilt inspecting patches $ quilt diff $ quilt diff --color=auto or quilt diff colordiff $ quilt files or quilt diff lsdiff $ quilt diff diffstat $ quilt diff -U num view differences in vimdiff (side by side): $ alias qdv= quilt diff -p0 -C color=never --diff=vimdiff 20/1 c Novell Inc. All Right Reserved
21 Packaging with quilt creating new patch 1 quilt push -a 2 quilt new foo-fix-bug.patch 3 quilt add src/file.c 4 vim src/file.c 5 hack, hack 6 quilt refresh steps 3 and 4 can be combined to quilt edit src/file.c the patch appears in parent directory (after quilt refresh) you have to add it to specfile 21/1 c Novell Inc. All Right Reserved
22 Packaging with quilt importing patch goal: import patch (e.g. taken from upstream) to quilt 1 quilt push -a 2 quilt import /path/to/bugfix.patch 3 quilt push 4 quilt refresh bugfix.patch appears in the parent directory -p num controls how many directory levels to strip (as with patch(1)) -P name overrides name of the patch multiple patches can be imported at once 22/1 c Novell Inc. All Right Reserved
23 Packaging with quilt rejected patches when quilt push fails, use quilt push -f applies as much as possible, leaves rejects (file.c + file.c.rej) $ quilt push Applying patch gnupg-files-are-digests.patch patching file g10/gpg.c Hunk #3 succeeded at 1998 (offset -4 lines). Hunk #4 succeeded at 2487 (offset -4 lines). patching file g10/options.h Hunk #1 FAILED at out of 1 hunk FAILED -- rejects in file g10/options.h patching file g10/sign.c Patch gnupg-files-are-digests.patch does not apply (enforce with -f) 23/1 c Novell Inc. All Right Reserved
24 Packaging with quilt rejected patches - continued failed hunks in *.c.rej have to be applied manually (vim *.c) then quilt refresh helper: vim quilt plugin (zypper install vim-plugin-quilt) (Contrib) vim foo.c - if there is also foo.c.rej - opens vertically split view easier to copy code from rejected hunks to original file the plugin can do more: :help quilt 24/1 c Novell Inc. All Right Reserved
25 Packaging with quilt make quilt more friendly $ alias q= quilt $ alias qd= quilt diff --color=always $ alias qdv= quilt diff -p0 -C color=never --diff=vimdiff $ alias qp= quilt push --color=auto $ alias qs= quilt setup -v *.spec $ cat ~/.quiltrc # show C function name in hunk header QUILT_DIFF_OPTS= -p 25/1 c Novell Inc. All Right Reserved
26 osc status, osc addremove we have to tell osc about new/deleted files example: update foo-1.0 to foo-2.0 $ ls foo*bz2 foo-1.0.tar.bz2 foo-2.0.tar.bz2 $ osc status? foo-2.0.tar.bz2 $ rm foo-1.0.tar.bz2 $ osc ar # osc addremove D foo-1.0.tar.bz2 A foo-2.0.tar.bz2 $ osc st # osc status D foo-1.0.tar.bz2 A foo-2.0.tar.bz2 osc add + osc remove = osc ar 26/1 c Novell Inc. All Right Reserved
27 Committing changes osc diff displays changes in the package more readable: $ alias osccd= osc diff colordiff less osc vc opens foo.changes file (prepares new entry header, unless -e option is given) vim can open compressed tarballs: :tabnew foo-2.0.tar.bz2 search for Changelog, NEWS,... ; open copy, paste and edit changelog entry osc commit osc sr 27/1 c Novell Inc. All Right Reserved
28 Vim and changelogs to make changelog editing with vim more convenient, add to.vimrc: set nocompatible filetype plugin on syntax on autocmd BufRead,BufNewFile *.changes.* set filetype=changes autocmd FileType changes set spelllang=en_us spell textwidth=67 28/1 c Novell Inc. All Right Reserved
29 osc bash completion supports completing: osc subcommand names (checkout, commit,... ) global long osc options (e.g. --quiet, --debug,... ) long subcommand options project names package names (in given project) file names (in given project/package) repository names (opensuse Factory,... )... git clone git://gitorious.org/opensuse/osc-bash-completion.git see README 29/1 c Novell Inc. All Right Reserved
30 osc bash completion examples osc com<tab> => osc commit osc build --a<tab> => osc build --alternative-project osc ls Ar<tab> => osc ls Archiving osc ls Base:System pa<tab> => osc ls Base:System parted osc meta a<tab> => osc meta attribute osc request <tab> => osc request accept approvenew co decline checkout list log revoke show wipe... 30/1 c Novell Inc. All Right Reserved
31 Browsing source code packager often needs to understand code written by somebody else application crashes patch does not apply to new version build fails there are tools that significantly help: ctags cscope both work with C/C++, ctags supports many other languages zypper install ctags cscope 31/1 c Novell Inc. All Right Reserved
32 Browsing source code ctags ctags creates database of symbols in the source code tree editor (or other tools) use this database to quickly search for symbols and jump to the definition to create the database (tags file): $ cd foo $ ctags -R. vim automatically uses ctags database if present Ctrl+] / Ctrl+L click jump to definition of symbol under cursor Ctrl+t / Ctrl+R click jump back :tag symbol jump to definition of symbol vim -t symbol open vim and jump directly to definition of symbol :help ctags 32/1 c Novell Inc. All Right Reserved
33 Browsing source code vim + ctags + bash completion sometimes you forget exact name of the symbol bash completion becomes handy: $ ctags -R. $ vim -t sym<tab> => vim -t symbol_name_full bash completion with ctags and Vim put it to ~/.bash completion zypper install bash completion 33/1 c Novell Inc. All Right Reserved
34 Browsing source code cscope ctags can only jump to symbol definition; cscope can do more whith cscope, it is possible to quickly lookup e.g. where is the symbol defined (same as ctags) where is the symbol used what functions call this function what functions are called by this function which files include this file... support in vim vim tutorial.html 34/1 c Novell Inc. All Right Reserved
35 Browsing source code taglist source code browser plugin for vim provides overview of the structure of source code files zypper install vim-plugin-taglist (Contrib) set up taglist binding in.vimrc: nnoremap <silent> <F8> :Tlist<CR> 35/1 c Novell Inc. All Right Reserved
36 Browsing source code taglist screenshot 36/1 c Novell Inc. All Right Reserved
37 Patches from Fedora do not reinvent wheel - before writing patch, make sure it does not already exist Fedora uses git now: # Credits: Pavol Rusnak function fedora_getpkg() { git clone git://pkgs.fedoraproject.org/${1}.git } 37/1 c Novell Inc. All Right Reserved
38 Patches from git... with tig tig is ncurses interface for git (zypper install tig) run tig from the cloned repository, press h for help to find and extract patch form git repository, add the following to /.tigrc: bind generic P!git format-patch %(commit)^..%(commit) run tig (e.g. tig v2.2..) select the patch you want to extract hit P - the patch will be saved as sth like 0001-fix-name.patch 38/1 c Novell Inc. All Right Reserved
39 RPM macros sometimes not obvious what rpm %macro does rpmbuild --showrc lists all defined RPM macros rpm -E %macro prints expanded macro supported by bash completion: $ rpm -E %la<tab> => rpm -E %lang_package %package lang Summary: Languages for package %{name} Group: System/Localization Requires: %{name} = %{version} Provides: %{name}-lang-all = %{version} Supplements: packageand(bundle-lang-other:%{name}) BuildArch: noarch %description lang Provides translations to the package %{name} 39/1 c Novell Inc. All Right Reserved
40 EOF Questions? 40/1 c Novell Inc. All Right Reserved
Python RPM Porting Guide Release 0.1
Python RPM Porting Guide Release 0.1 Red Hat, Inc. Apr 27, 2017 Contents 1 Porting the specfile to Python 3 2 2 Modifications 3 2.1 BuildRequires and Requires....................................... 3 2.2
More informationSoftware Development I
6.148 Software Development I Two things How to write code for web apps. How to collaborate and keep track of your work. A text editor A text editor A text editor Anything that you re used to using Even
More informationRPM How To: Intro. What is RPM? Why Building RPMS? Who is this howto designed for? Who can build RPMS? What do I need to build RPMS?
RPM How To: Intro What is RPM? The RedHat Package Manager (RPM) is a powerful command line driven package management system capable of installing, uninstalling, verifying, querying, and updating computer
More informationOpen Build Service (OBS) Packager Workshop
Open Build Service (OBS) Packager Workshop A Packagers OBS Tools Components Overview Hermes Web UI Web UI Command Line Client Your Client Installer (YaST,etc.) Notification Server OBS API (api.opensuse.org)
More informationGit GitHub & secrets
Git&GitHub secrets git branch -D local-branch git push origin :local-branch Much like James Cameron s Avatar, Git doesn t make any goddamn sense This talk throws a ton of stuff at you This talk throws
More informationOnce you compile, Vim automatically takes you to the first line that is causing the error. To go to the next error; use :cn to take you to the next li
Vim for C Programmers By Girish Venkatachalam Created 2005-10-31 02:00 Thank you for subscribing to Linux Journal. You don't have to move to an integrated development environment to get luxury coding features.
More informationBuilding Linux Packages with RPM
Building Linux Packages with RPM S9239, Long Beach Tuesday 1:30pm, February 24, 2004 Alex devries Outline Why? The goal of pristine sources Some unobvious suggestions How it all fits
More information213/513/613 Linux/Git Bootcamp. Cyrus, Eugene, Minji, Niko
213/513/613 Linux/Git Bootcamp Cyrus, Eugene, Minji, Niko Outline 1. SSH, bash, and navigating Linux 2. Using VIM 3. Setting up VS Code 4. Git SSH 1. On macos/linux: $ ssh ANDREW-ID@shark.ics.cs.cmu.edu
More informationGit Tutorial. André Sailer. ILD Technical Meeting April 24, 2017 CERN-EP-LCD. ILD Technical Meeting, Apr 24, 2017 A. Sailer: Git Tutorial 1/36
ILD Technical Meeting, Apr 24, 2017 A. Sailer: Git Tutorial 1/36 Git Tutorial André Sailer CERN-EP-LCD ILD Technical Meeting April 24, 2017 LD Technical Meeting, Apr 24, 2017 A. Sailer: Git Tutorial 2/36
More informationCommon Git Commands. Git Crash Course. Teon Banek April 7, Teon Banek (TakeLab) Common Git Commands TakeLab 1 / 18
Common Git Commands Git Crash Course Teon Banek theongugl@gmail.com April 7, 2016 Teon Banek (TakeLab) Common Git Commands TakeLab 1 / 18 Outline 1 Introduction About Git Setup 2 Basic Usage Trees Branches
More informationFrédéric Crozat SUSE Linux Enterprise Release Manager
Distribution build / delivery styles, one style to rule them all? Is rolling release the answer for everything? Or Service Pack? SUSE and opensuse experience Frédéric Crozat SUSE Linux
More informationGit, the magical version control
Git, the magical version control Git is an open-source version control system (meaning, it s free!) that allows developers to track changes made on their code files throughout the lifetime of a project.
More informationgit Version: 2.0b Merge combines trees, and checks out the result Pull does a fetch, then a merge If you only can remember one command:
Merge combines trees, and checks out the result Pull does a fetch, then a merge If you only can remember one command: git --help Get common commands and help git --help How to use git
More informationGitting things done. Hands-on introduction to git niceties. Jan Urbański Ducksboard
Gitting things done Hands-on introduction to git niceties Jan Urbański jan@ducksboard.com Ducksboard Atlassian Git Party, Madrid, September 25, 2012 Jan Urbański (Ducksboard) Gitting things done Atlassian
More informationVersion Control System - Git. zswu
Version Control System - Git zswu Overview Why VCS? Why Git? Using Git Personally Using Git with Others Etiquette Rules of Using Git Tools & Services Tips 2 Why VCS (1/3) How do you manage your homework?
More informationEugene, Niko, Matt, and Oliver
213/513 Linux/Git Bootcamp Eugene, Niko, Matt, and Oliver outline 1. ssh but also Windows ssh client especially 2. bash commands + navigating Linux 3. VIM and VS Code 4. Git how to ssh 1. on OS X/Linux:
More informationKivy Designer Documentation
Kivy Designer Documentation Release 0.9 Kivy October 02, 2016 Contents 1 Installation 3 1.1 Prerequisites............................................... 3 1.2 Installation................................................
More informationGit & Github Fundamental by Rajesh Kumar.
Git & Github Fundamental by Rajesh Kumar About me Rajesh Kumar DevOps Architect @RajeshKumarIN www.rajeshkumar.xyz www.scmgalaxy.com 2 What is git Manage your source code versions Who should use Git Anyone
More informationLinux and Git Boot Camp
Linux and Git Boot Camp Roshan, Zack, Blair, Ian Jan. 21, 2018 1 Connecting Clients SSH Windows users: MobaXterm, PuTTY, SSH Tectia Mac & Linux users: Terminal (Just type ssh) ssh andrewid@shark.ics.cs.cmu.edu
More informationUsing git to download and update BOUT++
ER Meeting 14th Sept 2015 1/28 Using git to download and update BOUT++ Peter Hill ER Meeting 14th Sept 2015 2/28 Outline What is git? Getting git Basic git usage Getting BOUT++ Compiling BOUT++ Running
More informationGit. A Distributed Version Control System. Carlos García Campos
Git A Distributed Version Control System Carlos García Campos carlosgc@gnome.org Carlos García Campos carlosgc@gnome.org - Git 1 A couple of Quotes For the first 10 years of kernel maintenance, we literally
More informationVersion control system (VCS)
Version control system (VCS) Remember that you are required to keep a process-log-book of the whole development solutions with just one commit or with incomplete process-log-book (where it is not possible
More informationCS 520: VCS and Git. Intermediate Topics Ben Kushigian
CS 520: VCS and Git Intermediate Topics Ben Kushigian https://people.cs.umass.edu/~rjust/courses/2017fall/cs520/2017_09_19.zip Our Goal Our Goal (Overture) Overview the basics of Git w/ an eye towards
More informationopensuse Packaging for the osmocom stack Martin Hauke
opensuse Packaging for the osmocom stack Martin Hauke mardnh@gmx.de 21.04.2018 Intro Why opensuse? It s my favourite Linux distribution (open)suse has great tools and infrastructure OBS, OpenQA, KIWI opensuse
More informationWhat is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read)
1 For the remainder of the class today, I want to introduce you to a topic we will spend one or two more classes discussing and that is source code control or version control. What is version control?
More informationBest Practice for Tizen Platform from Code to Device. Zhang, Qiang Chen, Gui (Intel Open Source Technology Center)
Best Practice for Tizen Platform from Code to Device Zhang, Qiang Chen, Gui (Intel Open Source Technology Center) Agenda Tizen Development Tools Workflow Overview Downloading Tizen source code Building
More informationUsing Git to Manage Source RTL
Using Git to Manage Source RTL CS250 Tutorial 1 (Version 082311) August 24, 2011 Brian Zimmer How to use this tutorial This class will be using Git for all of the labs and projects. This will allow the
More informationIntroduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum
Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum Table of Contents Preparation... 3 Exercise 1: Create a repository. Use the command line.... 4 Create a repository...
More informationPackage Manager. RPM (Red Hat Package Manager)
Package Manager RPM (Red Hat Package Manager) A toolset for distributing and maintaining packages (tools,libraries, etc) Package name: Name-version-release.distribution.archtecture Source package suffix.src.rpm
More informationIs code in your project sane enough?
Is code in your project sane enough? Red Hat Kamil Dudka February 6th, 2015 Abstract This demo session will show how we can easily check the sanity of code in our project. There is a tool named csmock,
More informationUbuntu Development Primer
Ubuntu Development Primer How to stop monkey patching and start committing Dave Chiluk chiluk@ubuntu.com Topics Getting support Launchpad Modifying Sources Building Submitting changes The Kernel Me. Dave
More informationWorking in Teams CS 520 Theory and Practice of Software Engineering Fall 2018
Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018 Version Control September 18, 2018 Thursday (September 20) First in-class exercise On using git (today is a prelude with useful
More informationRecitation #1 Boot Camp. August 30th, 2016
18-600 Recitation #1 Boot Camp August 30th, 2016 Welcome to 18-600! Purpose of recitation Useful tools, information pertaining to the labs Hands-on activities Problem solving and exam prep Last ~30 mins
More informationGit Workflows. Sylvain Bouveret, Grégory Mounié, Matthieu Moy
s Sylvain Bouveret, Grégory Mounié, Matthieu Moy 2017 [first].[last]@imag.fr http://recherche.noiraudes.net/resources/git/git-workflow-slides.pdf 1 / 16 Goals of the presentation Global history: multiple
More informationIntro Technical details Using vcsh Outlook Outro. vcsh. manage config files in $HOME via fake bare git repositories
Intro Technical details Using Outlook Outro manage config files in $HOME via fake bare git repositories Richard Hartmann, RichiH@{freenode,OFTC,IRCnet}, richih.mailinglist@gmail.com 2012-02-04 Intro Technical
More informationGit version control with Eclipse (EGit) Tutorial
Git version control with Eclipse (EGit) Tutorial 출처 : Lars Vogel http://www.vogella.com/tutorials/eclipsegit/article.html Lars Vogel Version 3.6 Copyright 2009, 2010, 2011, 2012, 2013, 2014 Lars Vogel
More informationEclipse on Linux Distributions Project
Eclipse on Linux Distributions Project Creation Review All logos are trademark their respective organizations. Members of organizations/corporations participating in this project does not necessarily imply
More informationCPSC 491. Lecture 19 & 20: Source Code Version Control. VCS = Version Control Software SCM = Source Code Management
CPSC 491 Lecture 19 & 20: Source Code Version Control VCS = Version Control Software SCM = Source Code Management Exercise: Source Code (Version) Control 1. Pretend like you don t have a version control
More informationProject 1. Fast correction
Project 1 Fast correction Project #1 waitpid vs wait WEXITSTATUS Memory leaks! fflush after the >, before the fork Why? Because the children and the parent can run in any order When piping a list of commands
More informationCSCE UVM Hands-on Session-1 Pre-Work
CSCE489-689 UVM Hands-on Session-1 Pre-Work Please complete the following steps before the lecture on Feb-16. These steps will help set-up the environment and tools necessary for the hands-on session.
More informationFPLLL. Contributing. Martin R. Albrecht 2017/07/06
FPLLL Contributing Martin R. Albrecht 2017/07/06 Outline Communication Setup Reporting Bugs Topic Branches and Pull Requests How to Get your Pull Request Accepted Documentation Overview All contributions
More informationIntro to Linux & Command Line
Intro to Linux & Command Line Based on slides from CSE 391 Edited by Andrew Hu slides created by Marty Stepp, modified by Jessica Miller & Ruth Anderson http://www.cs.washington.edu/391/ 1 Lecture summary
More informationgit commit --amend git rebase <base> git reflog git checkout -b Create and check out a new branch named <branch>. Drop the -b
Git Cheat Sheet Git Basics Rewriting Git History git init Create empty Git repo in specified directory. Run with no arguments to initialize the current directory as a git repository. git commit
More informationCSE 391 Lecture 9. Version control with Git
CSE 391 Lecture 9 Version control with Git slides created by Ruth Anderson & Marty Stepp, images from http://git-scm.com/book/en/ http://www.cs.washington.edu/391/ 1 Problems Working Alone Ever done one
More informationA quick (and maybe practical) guide to Git and version control. By Jay Johnson
A quick (and maybe practical) guide to Git and version control By Jay Johnson Necessary shout outs and reference links from slides from CSE 380 with Dr. Chris Simmons (UT-Austin) and notes from Prof. Jean-Luc
More informationNexus Application Development - SDK
This chapter contains the following sections: About the Cisco SDK, page 1 Installing the SDK, page 1 Procedure for Installation and Environment Initialization, page 2 Using the SDK to Build Applications,
More informationIntroduction to distributed version control with git
Institut für theoretische Physik TU Clausthal 04.03.2013 Inhalt 1 Basics Differences to Subversion Translation of commands 2 Config Create and clone States and workflow Remote repos Branching and merging
More informationSetting up a decent dev box for OSS work. LPC Student day 2008
Setting up a decent dev box for OSS work mark.gross@intel.com LPC Student day 2008 1 Goals for this talk Show one way of setting up a usable developer system for OSS work Remove hesitation of participation
More informationCreating a Patch. Created by Carl Heymann on 2010 Sep 14 1
Created by on 2010 Sep 14 1 1. Starting a Patch To create a patch, and get it through the review process and into a main branch of a project, you can follow the following steps: Clone the project if you
More informationMNXB Working with SVN. Florido Paganelli Lund University Tutorial 2b
MNXB01 2016 Lund University florido.paganelli@hep.lu.se 1/73 Outline What are version/revision control systems Generic concepts of version/revision systems SVN Generic concepts of SVN SVN tutorial 2/73
More informationIntroduction to GIT. Jordi Blasco 14 Oct 2011
Jordi Blasco (jblasco@xrqtc.com) 14 Oct 2011 Agenda 1 Project information Who is ussing GIT 2 Branch Tag Data Transport Workow 3 Congure 4 Working with remotes 5 Project information Who is ussing GIT Project
More informationSource Code Management wih git
Source Code Management wih git Matthieu Herrb December 22 http://homepages.laas.fr/matthieu/cours/git.pdf Licence This work is licensed under a Creative Commons Attribution-ShareAlike 3. Unported License.
More informationIntroduction to the UNIX command line
Introduction to the UNIX command line Steven Abreu Introduction to Computer Science (ICS) Tutorial Jacobs University s.abreu@jacobs-university.de September 19, 2017 Overview What is UNIX? UNIX Shell Commands
More informationHg Tutorial. For : COP Object oriented Programming (Using C++) Biswas Parajuli
Hg Tutorial For : COP 3330. Object oriented Programming (Using C++) http://www.compgeom.com/~piyush/teach/3330 Biswas Parajuli Need for Version Control http://hginit.com/01.html Repository Working directory:
More informationCSE 374 Programming Concepts & Tools. Hal Perkins Winter 2012 Lecture 16 Version control and svn
CSE 374 Programming Concepts & Tools Hal Perkins Winter 2012 Lecture 16 Version control and svn Where we are Learning tools and concepts relevant to multi-file, multi-person, multi-platform, multi-month
More informationGame Server Manager Documentation
Game Server Manager Documentation Release 0.1.1+0.gc111f9c.dirty Christopher Bailey Dec 16, 2017 Contents 1 Game Server Manager 3 1.1 Requirements............................................... 3 1.2
More informationWorking with GIT. Florido Paganelli Lund University MNXB Florido Paganelli MNXB Working with git 1/47
Working with GIT MNXB01 2017 Florido Paganelli Lund University florido.paganelli@hep.lu.se Florido Paganelli MNXB01-2017 - Working with git 1/47 Required Software Git - a free and open source distributed
More informationManaging Projects with Git
Managing Projects with Git (and other command-line skills) Dr. Chris Mayfield Department of Computer Science James Madison University Feb 09, 2018 Part 1: Command Line Review as needed YouTube video tutorials
More informationContribute To Linux Mainline
Contribute To Linux Mainline Wu Zhangjin / Falcon wuzhangjin@gmail.com Tiny Lab 泰晓实验室 http://tinylab.org June 3, 2013 Outline 1 About Linux Kernel Development 2 Upstream your source code 3 Reference 4
More informationGUIDE TO MAKE A REAL CONTRIBUTION TO AN OPEN SOURCE PROJECT 1. 1
GUIDE TO MAKE A REAL CONTRIBUTION TO AN OPEN SOURCE PROJECT 1. 1 WHO AM I? @tushar_rishav GSoC'16 student contributing to coala - a static code analysis tool, under Python So ware Foundation. A senior
More informationHow to be a 1337 h4ck3r: Git + Linux
How to be a 1337 h4ck3r: Git + Linux An introduction to Git, version control, and Linux by Samsara Counts, Pat Cody, and Joseph Schiarizzi Slides adapted from Neel Shah and Phil Lopreiato DISCLAIMER: GW
More information2 Initialize a git repository on your machine, add a README file, commit and push
BioHPC Git Training Demo Script First, ensure that git is installed on your machine, and you have configured an ssh key. See the main slides for instructions. To follow this demo script open a terminal
More informationFundamentals of Git 1
Fundamentals of Git 1 Outline History of Git Distributed V.S Centralized Version Control Getting started Branching and Merging Working with remote Summary 2 A Brief History of Git Linus uses BitKeeper
More informationVersion control with Git.
1 Version control with Git http://git-scm.com/book/en/ Basic Intro to Git We will: Discuss how Git differs from Subversion Discuss the basic Git model Pull/clone files from a repository on github Edit
More informationIntro to Git. Getting started with Version Control. Murray Anderegg February 9, 2018
Intro to Git Getting started with Version Control Murray Anderegg February 9, 2018 What is Version Control? * It provides one method for an entire team to use; everybody operates under the same 'ground
More informationExercise 1: Basic Tools
Exercise 1: Basic Tools This exercise is created so everybody can learn the basic tools we will use during this course. It is really more like a tutorial than an exercise and, you are not required to submit
More informationRecitation #1 Unix Boot Camp. August 29th, 2017
18-600 Recitation #1 Unix Boot Camp August 29th, 2017 Welcome to 18-600! Purpose of recitation Useful tools, information pertaining to the labs Hands-on activities Problem solving and exam prep Last ~30
More informationVersion Control: Gitting Started
ting Started Cai Li October 2014 What is Version Control? Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later. Local Version
More informationVersion Control. Software Carpentry Github s Hello World Git For Ages 4 And Up You need source code control now
A version control system (VCS) is a tool or system for keeping track of changes in files. A primitive form of VCS would be making a copy of a file every time you want to make a new version of the file.
More informationNew Contributor Tutorial and Best Practices
New Contributor Tutorial and Best Practices Vicențiu Ciorbaru Software Engineer @ MariaDB Foundation * 2018 MariaDB Foundation * Goal of this session Most attendees here are highly experienced devs Let's
More informationGit Guide. Meher Krishna Patel. Created on : Octorber, 2017 Last updated : October, More documents are freely available at PythonDSP
Git Guide Meher Krishna Patel Created on : Octorber, 2017 Last updated : October, 2018 More documents are freely available at PythonDSP Table of contents Table of contents i 1 Commands Summary 1 2 Git
More informationPragmatic Guide to Git
Extracted from: Pragmatic Guide to Git This PDF file contains pages extracted from Pragmatic Guide to Git, published by the Pragmatic Bookshelf. For more information or to purchase a paperback or PDF copy,
More informationGit. all meaningful operations can be expressed in terms of the rebase command. -Linus Torvalds, 2015
Git all meaningful operations can be expressed in terms of the rebase command -Linus Torvalds, 2015 a talk by alum Ross Schlaikjer for the GNU/Linux Users Group Sound familiar? add commit diff init clone
More informationOnline Remote Repositories
Online Remote Repositories GitHub and Bitbucket centralized Git repositories for dissemination and collaboration Barry Grant bjgrant@umich.edu http://thegrantlab.org Recap: Client-Server vs Distributed
More informationOutline. Introduction to Version Control Systems Origins of Git Git terminology & concepts Basic Git commands Branches in Git Git over the network
Outline Introduction to Version Control Systems Origins of Git Git terminology & concepts Basic Git commands Branches in Git Git over the network Why do I need version control? How many lines of code was
More informationTips on how to set up a GitHub account:
Tips on how to set up a GitHub account: 1. Go to the website https://github.com/, you will see the following page: Figure 1: The GitHub main webpage (before you create an account and sign in) Then choose
More informationWindows. Everywhere else
Git version control Enable native scrolling Git is a tool to manage sourcecode Never lose your coding progress again An empty folder 1/30 Windows Go to your programs overview and start Git Bash Everywhere
More informationLab 1 1 Due Wed., 2 Sept. 2015
Lab 1 1 Due Wed., 2 Sept. 2015 CMPSC 112 Introduction to Computer Science II (Fall 2015) Prof. John Wenskovitch http://cs.allegheny.edu/~jwenskovitch/teaching/cmpsc112 Lab 1 - Version Control with Git
More informationAbout the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Gerrit
Gerrit About the Tutorial Gerrit is a web-based code review tool, which is integrated with Git and built on top of Git version control system (helps developers to work together and maintain the history
More informationDESCRIPTION Git dpm is a tool to handle a debian source package in a git repository.
NAME git dpm debian packages in git manager SYNOPSIS git dpm help git dpm [ options ] command [ per command options and arguments ] DESCRIPTION Git dpm is a tool to handle a debian source package in a
More informationAgenda. Several projects are using GIT Developer(s) Junio Hamano, Linus Torvalds. Qt Stable release (January 31, 2011)
Basic Agenda 1 Project information Who is ussing 2 14 Oct 2011 3 Basic Data Transport Work ow 4 Con gure 5 Basic Project information Who is ussing Project information Who is ussing Project information
More informationgit-flow Documentation
git-flow Documentation Release 1.0 Johan Cwiklinski Jul 14, 2017 Contents 1 Presentation 3 1.1 Conventions............................................... 4 1.2 Pre-requisites...............................................
More informationSection 1: Tools. Contents CS162. January 19, Make More details about Make Git Commands to know... 3
CS162 January 19, 2017 Contents 1 Make 2 1.1 More details about Make.................................... 2 2 Git 3 2.1 Commands to know....................................... 3 3 GDB: The GNU Debugger
More informationDistributed Version Control (with Git)
Distributed Version Control (with Git) Introduction and Tutorial fhlug 24. 03. 2011 Why Distributed? No single point of failure Automatic backups Fast local operations (log, diff, checkout, ) Authenticity
More informationHow to version control like a pro: a roadmap to your reproducible & collaborative research
How to version control like a pro: a roadmap to your reproducible & collaborative research The material in this tutorial is inspired by & adapted from the Software Carpentry lesson on version control &
More informationGETTING STARTED WITH. Michael Lessard Senior Solutions Architect June 2017
GETTING STARTED WITH Michael Lessard Senior Solutions Architect June 2017 Agenda What is Git? Installation of Git Git basis Github First steps with Git 2 WHAT IS GIT? What is Git? Started in 2005 Created
More informationDICE and LCFG Software Guidelines
DICE and LCFG Software Guidelines by paul@dcs.ed.ac.uk DICE Computing Environment Project Division of Informatics University of Edinburgh 1 Introduction This document describes the standards to be used
More informationGit. Christoph Matthies Software Engineering II WS 2018/19. Enterprise Platform and Integration Concepts group
Git Software Engineering II WS 2018/19 Christoph Matthies christoph.matthies@hpi.de Enterprise Platform and Integration Concepts group Outline 1. Basics 2. Local 3. Collaboration November 16, 2018 2 Centralized
More informationCSE Linux VM. For Microsoft Windows. Based on opensuse Leap 42.2
CSE Linux VM For Microsoft Windows Based on opensuse Leap 42.2 Dr. K. M. Flurchick February 2, 2017 Contents 1 Introduction 1 2 Requirements 1 3 Procedure 1 4 Usage 3 4.1 Start/Stop.................................................
More informationGit for Version Control
Git for Version Control These slides are heavily based on slides created by Ruth Anderson for CSE 390a. Thanks, Ruth! images taken from http://git-scm.com/book/en/ http://www.cs.washington.edu/403/ About
More informationLecture 01 - Working with Linux Servers and Git
Jan. 9, 2018 Working with Linux Servers: SSH SSH (named for Secure SHell) is a protocol commonly used for remote login. You can use it from a command line interface with the following syntax ssh username@server_url
More informationTools. SWE 432, Fall Design and Implementation of Software for the Web
Tools SWE 432, Fall 2016 Design and Implementation of Software for the Web Today Before we can really make anything, there s a bunch of technical stuff to get out of the way Tools make our lives so much
More informationLaboratorio di Programmazione. Prof. Marco Bertini
Laboratorio di Programmazione Prof. Marco Bertini marco.bertini@unifi.it http://www.micc.unifi.it/bertini/ Code versioning: techniques and tools Software versions All software has multiple versions: Each
More informationCESSDA Expert Seminar 13 & 14 September 2016 Prague, Czech Republic
CESSDA Expert Seminar 13 & 14 September 2016 Prague, Czech Republic - basics Matthäus Zloch GESIS Outline for this session Git introduction and some theory Git command basics (plus some little advanced)
More informationEECS Software Tools. Lab 2 Tutorial: Introduction to UNIX/Linux. Tilemachos Pechlivanoglou
EECS 2031 - Software Tools Lab 2 Tutorial: Introduction to UNIX/Linux Tilemachos Pechlivanoglou (tipech@eecs.yorku.ca) Sep 22 & 25, 2017 Material marked with will be in your exams Sep 22 & 25, 2017 Introduction
More informationShell Project Part 1 (140 points)
CS 453: Operating Systems Project 1 Shell Project Part 1 (140 points) 1 Setup All the programming assignments for Linux will be graded on the onyx cluster(onyx.boisestate.edu). Please test your programs
More informationTopics covered. Introduction to Git Git workflows Git key concepts Hands on session Branching models. Git 2
Git Git 1 Topics covered Introduction to Git Git workflows Git key concepts Hands on session Branching models Git 2 Introduction to Git Git 3 Version control systems The source files of a project changes
More informationPython Project Documentation
Python Project Documentation Release 1.0 Tim Diels Jan 10, 2018 Contents 1 Simple project structure 3 1.1 Code repository usage.......................................... 3 1.2 Versioning................................................
More informationTutorial: Getting Started with Git. Introduction to version control Benefits of using Git Basic commands Workflow
Tutorial: Getting Started with Git Introduction to version control Benefits of using Git Basic commands Workflow http://xkcd.com/1597/ 2 Tutorial Objectives Fundamentals of how git works Everything you
More informationTutorial 2 GitHub Tutorial
TCSS 360: Software Development Institute of Technology and Quality Assurance Techniques University of Washington Tacoma Winter 2017 http://faculty.washington.edu/wlloyd/courses/tcss360 Tutorial 2 GitHub
More information