INET

Similar documents
Version Control: Gitting Started

Distributed Version Control

CSE 391 Lecture 9. Version control with Git

Git for Version Control

Ingegneria del Software Corso di Laurea in Informatica per il Management (D)VCS. Davide Rossi Dipartimento di Informatica Università di Bologna

Git. A Distributed Version Control System. Carlos García Campos

Git for Subversion users

GIT for companies Mark Struberg, INSO TU Vienna

Version control with Git.

Push up your code next generation version control with (E)Git

Algorithm Engineering

Computer Science Design I Version Control with Git

Θερινό Σχολείο, Ιουλίου git. Αχιλλέας Πιπινέλης. Μονάδα Αριστείας ΕΛ/ΛΑΚ ΤΕΙ Αθήνας

Source Code Management wih git

Topics covered. Introduction to Git Git workflows Git key concepts Hands on session Branching models. Git 2

Fundamentals of Git 1

Version Control with Git

Introduction to Version Control

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018

Git Workflows. Sylvain Bouveret, Grégory Mounié, Matthieu Moy

Introduction to distributed version control with git

CSCI 2132: Software Development. Norbert Zeh. Faculty of Computer Science Dalhousie University. Subversion (and Git) Winter 2019

[Software Development] Development Tools. Davide Balzarotti. Eurecom Sophia Antipolis, France

Git at Eclipse. Shawn Pearce (Google)

Git Introduction CS 400. February 11, 2018

Git. Ľubomír Prda. IT4Innovations.

About SJTUG. SJTU *nix User Group SJTU Joyful Techie User Group

Tutorial: Getting Started with Git. Introduction to version control Benefits of using Git Basic commands Workflow

GIT VERSION CONTROL TUTORIAL. William Wu 2014 October 7

GUIDE TO MAKE A REAL CONTRIBUTION TO AN OPEN SOURCE PROJECT 1. 1

CESSDA Expert Seminar 13 & 14 September 2016 Prague, Czech Republic

A Practical Introduction to Version Control Systems

Laboratorio di Programmazione. Prof. Marco Bertini

Version Control Systems

Version Control with GIT: an introduction

Version Control with GIT

Git better. Collaborative project management using Git and GitHub. Matteo Sostero March 13, Sant Anna School of Advanced Studies

Part I Part 1 Version Control Systems (VCSs)

What is git? Distributed Version Control System (VCS); Created by Linus Torvalds, to help with Linux development;

Part I Part 1 Version Control Systems (VCSs)

AIS Grid School 2015

Version Control Systems

Having Fun with Social Coding. Sean Handley. February 25, 2010

Git version control with Eclipse (EGit) Tutorial

Software Development I

EGit in Eclipse. Distributed Verzion Control Systems

Git. all meaningful operations can be expressed in terms of the rebase command. -Linus Torvalds, 2015

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 11, 2017

Version Control Systems (VCS)

A BASIC UNDERSTANDING OF VERSION CONTROL

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.

Using Git For Development. Shantanu Pavgi, UAB IT Research Computing

How to be a git. Dominic Mitchell

Decentralized Version Control Systems

Version Control Systems

Revision control. INF5750/ Lecture 2 (Part I)

Lab Exercise Git: A distributed version control system

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.

Introduction to Git and Github Repositories

Part I Part 1 Version Control Systems (VCSs)

Git Like You Mean it. Alan Ott SCaLE 16x March 8-11, 2018

Software Project (Lecture 4): Git & Github

Version control system (VCS)

Git - A brief overview

CS 320 Introduction to Software Engineering Spring February 06, 2017

git the SCM system Jan-Simon Möller training.linuxfoundation.org

Part I Part 1 Version Control Systems (VCSs)

Part I Part 1 Version Control Systems (VCSs)

2/9/2013 LAB OUTLINE INTRODUCTION TO VCS WHY VERSION CONTROL SYSTEM(VCS)? II SENG 371 SOFTWARE EVOLUTION VERSION CONTROL SYSTEMS

Object Oriented Programming. Week 1 Part 2 Git and egit

TDDC88 Lab 4 Software Configuration Management

Version Control with Git

Version Control Systems (Part 1)

Versioning with git. Moritz August Git/Bash/Python-Course for MPE. Moritz August Versioning with Git

Revision Control. Software Engineering SS 2007

Distributed Version Control (with Git)

Git and GitHub. Dan Wysocki. February 12, Dan Wysocki Git and GitHub February 12, / 48

Version Control System - Git. zswu

Overview. 1. Install git and create a Github account 2. What is git? 3. How does git work? 4. What is GitHub? 5. Quick example using git and GitHub

Using git to download and update BOUT++

Version Control with Git ME 461 Fall 2018

Version control CSE 403

Version Control. Version Control

Version Control. So#ware Quality Quality Audit and Cer2fica2on. Master in Computer Engineering. Roberto García

How to version control like a pro: a roadmap to your reproducible & collaborative research

Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018

1. Which of these Git client commands creates a copy of the repository and a working directory in the client s workspace. (Choose one.

Beyond git add/commit/push

Git. Presenter: Haotao (Eric) Lai Contact:

GIT TUTORIAL. Creative Software Architectures for Collaborative Projects CS 130 Donald J. Patterson

git 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:

Version control CSE 403

Revision Control and GIT

GETTING STARTED WITH. Michael Lessard Senior Solutions Architect June 2017

S18 Modern Version Control with Git

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read)

git commit --amend git rebase <base> git reflog git checkout -b Create and check out a new branch named <branch>. Drop the -b

GETTING TO KNOW GIT: PART II JUSTIN ELLIOTT PENN STATE UNIVERSITY

Warmup. A programmer s wife tells him, Would you mind going to the store and picking up a loaf of bread? Also, if they have eggs, get a dozen.

Getting the files for the first time...2. Making Changes, Commiting them and Pull Requests:...5. Update your repository from the upstream master...

Transcription:

INET Framework@GitHub Proposal: How to Collaborate on Model Development Andras Varga, Rudolf Hornig

INET: Current Stand Several branches in private repositories i Several extensions various web sites Patches, bugfixes posted to the mailing list

INET Branches INET-20061020 (for 3.3) MIPv6 for INET OverSim DSR,AODV,..., for INET MobileWiMAX for INET SCTP INETMANET for 4.0 INET for 4.0 MIPv6 for INET for 4.0 MobileWiMAX for INET for 4.0 OverSim for 4.0

End User Perception Patches, modifications, more patches... "Which is the latest version?" At minimum, end users need: a "stable" version well tested, well documented, etc conservative development model a "bleeding edge" version all-in-one latest-and-greatest may be rough around the edges

How do others do it? Biggest project: Linux kernel every release of the Linux kernel is being developed by nearly 1,000 developers, working for more than 100 corporations. an average of 3,621 lines of code are added to the kernel tree every day How do they manage? Distributed Version Control. git formerly they used BitKeeper before that they used tarballs and emailed patches to each other "which was a vastly superior form of version control than CVS" Linus Torvalds

Distributed Version Control Centralized Version Control (cvs, svn) Distributed Version Control (git, darcs, mercurial, bazaar) commit/update push/pull email email

allows private work DVCS Advantages people don't need a password to a central repo to begin hacking on the project! no central repo, but one may be designated as such easy branching and merging enables parallel versions co-exist, with possibility of exchanging code between them enables implementing new protocols/features/fixes in a topic branch efficiency allows work without network connection most operations are much faster

Why ygit? extremely fast very scalable tracks content not files (!) supports several branches per repo sophisticated merge algorithms (e.g. "subtree") avoids versioning number chaos makes everything possible (even rewriting history) graphical tools, Eclipse plug-in github!

INET on github

INET on github Github names projects as: user / project user: inet-framework projects: inet, inet-quagga + "collaborators" (committers) Branches in the INET repo: master, stable, topic/inetmanet Current forks: inetmanet / inetmanet ruengeler / sctpinet

Simple Patch remote repo (e.g. github) local repo git clone git://github.com/inet-framework/inet.git git checkout b experimental edit files git commit a edit files git commit a git format-patch master --stdout > mypatch.diff email mypatch.diff

Forking a Repo on github 1. create a github user 2. add public key ssh-keygen 3. fork inet 4. clone repo to local disk yourlogin $ git clone git@github.com:yourlogin/inet.git

Making Changes repo @gihhub local repo git clone git@github.com:yourlogin/inetfork.git edit files git commit a "origin" edit files git commit a git push origin master

Topic Branch "master" "experimental" git branch experimental git checkout experimental edit files git commit a git pull. master (optional) edit files git commit a git checkout master git pull. experimental git branch d experimental

Contributing Commits Back to INET On github, forked projects can send a pull request to the original (or related) project "please take over the following changes I made" Maintainer of original project reviews the code Maintainer of original project reviews the code and checks it in

git for cvs/svn users svn checkout svn add ~ git add ~ git clone; git checkout svn commit ~ git commit -a [+git push] svn remove --force ~ rm (with commit -a); or git rm svn update ~ git pull svn revert ~ git checkout.

Everyday eydaytasks swith GIT Create a repo: git init it Clone a repo: git clone url Commit all changed files: git commit -a Add files to the index (=list of files to be committed): git add file1 file2 Commit files added to the index: git commit Initial checkin: git add.; git commit To see the changes you will commit: git diff --cached

Everyday eydaytasks swith GIT Changes compared to the last commit: git diff Getting history: git log Getting status info about files: git status Tagging (each commit is identified by its SHA1 hash, but you can give meaningful names to any version): git tag rel2.0 acb56fea Getting an older version: git checkout rel2.0 Reverting your local changes: git checkout. Throwing away the last commit git reset --hard HEAD^

Branching and merging g with GIT Branches are cheap - you should use them Show your current branches: git branch Create a new branch from the current head git branch experimental Switch to a specific c branch git checkout experimental Merge the changes from the master to the experimental git merge master Delete a branch: git branch -d experimental

Collaborating at with GIT Clone a remote repository git clone git://github.com/inet-framework/inet.git Create a name for a remote repo git remote add origin git://github.com.../inet.git Do local changes, commits etc. and then get the changes from the original remote repo git pull origin master When ready to contribute back your changes, (you must have write rights for the remote repo) git push origin i master

OMNeT++ IDE Git support Uses the egit plugin ("Java Git / Eclipse Git") Usage: start with: File Import... then: use Team submenu of the project menu

More about git If you have time, watch to the following video on youtube: Linus Torvalds on git, Google Tech Talk

Git Resources Tutorial man pages: gittutorial, gittutorial2, gitcore-tutorial, gitglossary Various tutorials on the web: "Git - SVN Crash Course" "Manage source code using Git"... Git command man pages: man git-commit man git-pull...

INET@github Questions, comments? Discussioni