Git Verstehen Und Nutzen

Total Page:16

File Type:pdf, Size:1020Kb

Git Verstehen Und Nutzen Git verstehen und nutzen Stephan Beyer 11. Chemnitzer Linux-Tage 14. M¨arz 2009 (π-Tag) Git 1 / 79 Teil I Einleitung Git 2 / 79 Was ist Git? . ein Versionsverwaltungssystem, oder Software Configuration Management\ (Software-Engineering, " Rational ClearCase, BitKeeper) Source Code Management\ (Darcs) " Source Control Management\ (Wikipedia) " Revision Control System\ (RCS, GNU arch) " Source Code Control System\ (SCCS) " Version Control System\ (CVS, Subversion, Mercurial, " GNU Bazaar, Monotone) Global Information Tracker\ (Linus Torvalds) " Git VCS 3 / 79 Was ist Git? Versionsverwaltung { wozu? Problem Daten ¨andern sich im Laufe der Zeit. Diese Anderungen¨ sollen festgehalten werden. Hilfreich: Wer hat wann was warum ge¨andert? Daten in Programmcode Dateien bspw. Dokumentation Projekten Konfigurationsdateien abstrakt: Objekten Bin¨ardateien Git VCS 4 / 79 Was ist Git? Versionsverwaltung { wozu? F¨ahigkeiten Versionsverwaltung nach Eric S. Raymond Verwaltung von Daten mit Umkehrbarkeit { Zuruckholen¨ bekannter, gespeicherter Zust¨ande, z. B. bei Fehlern oder schlechten Ideen Nebenl¨aufigkeit {F¨ahigkeit, dass viele Personen auch gleichzeitig denselben Code ¨andern durfen,¨ ohne dass Anderungen¨ einer Person einfach verloren gehen Kommentierung { Anderungen¨ k¨onnen kommentiert werden mit Intention, Grunden,¨ Umsetzung, Hinweisen, . Git VCS 5 / 79 Einschub: zwei grobe Begriffe Projekt: Gesamtheit aller Daten (jetzt: Verzeichnisse mit Dateien), die verwaltet werden sollen Repository: dt. Lager, Depot, Repositorium; kurz Repo; ein von einer Versionsverwaltung verwaltetes Projekt Git VCS 6 / 79 Was ist Git? . ein verteiltes oder dezentrales Versionsverwaltungssystem (DVCS): Jeder Nutzer hat eigenes Repo eines Projektes mit der gesamten Geschichte. Jedes Repo kann einen Zustand haben, der sich von den anderen unterscheidet. Neben Git z¨ahlen auch Arch, Bazaar, BitKeeper, Darcs, Mercurial, Monotone zu den DVCS. Git verteilte VCS 7 / 79 Warum Git? einfach zu bedienen (wenn Konzepte verstanden) schnell mittlerweile große Nutzerbasis und Community schnelle Entwicklung viel Support (auch Blogosphere) Google: Results 1 - 20 of about 138,000,000 for git Sachzwang: ein Projekt nutzt Git flexibel und m¨achtig stellt sich nicht in den Weg des Anwenders viele nutzliche¨ Kleinigkeiten Linus schrieb's Git Grunde¨ 8 / 79 Zeitverhalten Daten- und Bildquelle: Why Git is Better Than X ! Git is fast Plot von Google Charts API Abbildung: verschiedene DVCS-Operationen auf Django-Repo (roh: ≈19M) Git Grunde¨ 9 / 79 Nutzerentwicklung Quelle: trends.google.com , 4.3.2009 Abbildung: Google Trends, Suchanfragen Git Grunde¨ 10 / 79 Nutzerentwicklung Quelle: qa.debian.org popcon statistics (inst), 4.3.2009 Abbildung: Debian Popularity Contest, Installationen von (D)VCS Git Grunde¨ 11 / 79 Nutzerentwicklung Quelle: qa.debian.org popcon statistics (vote), 4.3.2009 Abbildung: Debian Popularity Contest, regul¨are Nutzung von (D)VCS Git Grunde¨ 12 / 79 Wer nutzt Git? ALSA Git Rails Android GNU autoconf rox awesome GNU automake Rubinius bucardo GNU coreutils Samba buildd-tools GNU Libtool Slash Cairo GNU TLS swfdec centerim grml SWI-Prolog Cinelerra-CV HAL SysLinux cobbler LilyPond The Mana World Compiz Fusion Linux Thousand Parsec dash Merb uade DBus Mesa3D U-Boot DirectFB netconf VLC ELinks OLPC VLE Erlware OpenVZ Wexus Fedora OpenXPKI WINE fluxbox pacman XMMS2 fontconfig pbuilder X.org fprint Perl 5 xwax Frugalware Phoronix Test Suite yum gEDA Poppler ZeroInstall GHC Prototype ...diese Folien Git Grunde¨ 13 / 79 Teil II Grundlegende Konzepte Git 14 / 79 Konzepte Wichtig fur¨ Grundverst¨andnis: wichtige Objekte: Blobs, Trees, Commits, . Referenzen (Refs): Branches, (leichtgewichtige) Tags, . der Index Git 15 / 79 Objekte in Git Git als inhaltsadressiertes Dateisystem Idee: jedes Objekt hat eindeutigen Namen Name = SHA-1 des Objekts SHA-1 berechnet sich aus Inhalt des Objekts L¨ange 160 Bit (20 Bytes) ) Hexadezimalstring aus 40 Zeichen 2 f0;:::; 9; a;:::; f g Konsequenz: schneller Zugriff in Objektdatenbank nach Namen gleiche Objekte haben gleichen Namen Anderungen¨ am Objekt ¨andern dessen Namen schneller Vergleich von Objekten implizite Integrit¨atsprufung¨ maximal 25620 > 1048 Objekte Git Objekte 16 / 79 Blob-Objekt Daten bzw. Inhalt von Dateien Hello world 802992c4220de19a90767f3000a79a31b98d0df7 #!/bin/sh for i in "$@" do convert "$i" -scale 0.5 "small/$i" done 97d9fed61674aa80332e4d6596b875c66099044d e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 Git Objekte Blobs 17 / 79 Tree-Objekt gibt die Datei- und Verzeichnisstruktur wieder Gebilde aus Blobs und Trees mit Attributen wie Dateinamen und -rechten, Symlinks usw. Dateirechte: eingeschr¨ankt auf Unterscheidung ausfuhrbar¨ / nicht-ausfuhrbar¨ 802992c: 100644 hello e69de29: 100644 empty-file Verzeichnisstruktur: empty a6097b449283b490eb4147ffbf3f920ddbbfdf21 small.sh small/ e69de29: 100644 empty hello 97d9fed: 100755 small.sh empty-file a6097b4: 040000 small 4b15187b78c70255e53857fead9181bbcc22405d Git Objekte Trees 18 / 79 Commit-Objekt besteht aus Committer (Ersteller des Commits) Autor Zeit Parent(s), d. h. Eltern-Commit(s) ! Verweis auf Geschichte Tree-Objekt Zusammenfassung der Anderungen;¨ idealerweise: erste Zeile fasst Anderungen¨ kurz zusammen dann leere Zeile ausfuhrliche¨ Zusammenfassung ggf. spezielle Angaben wir Signed-off-by: am Ende d. h. ein Commit beschreibt, wer wann was warum ge¨andert hat. Git Objekte Commits 19 / 79 Commit-History gerichteter, azyklischer Graph der Commit-Geschichte e0d8d74 d2cb604 fdd8901 b7f63a4 11a4fcf ab32698 52742ac 597429c bf4e171 76b35f0 d83040c d3fa0a1 8054e14 fea8f5c aaf43ff 5bacee0 5013c78 c447413 Git Objekte Commits 20 / 79 Commit-History gerichteter, azyklischer Graph der Commit-Geschichte e0d8d74 d2cb604 fdd8901 b7f63a4 11a4fcf ab32698 52742ac 597429c bf4e171 76b35f0 d83040c d3fa0a1 8054e14 fea8f5c aaf43ff 5bacee0 5013c78 c447413 Git Objekte Commits 20 / 79 Commit-History gerichteter, azyklischer Graph der Commit-Geschichte e0d8d74 d2cb604 fdd8901 b7f63a4 11a4fcf ab32698 52742ac 597429c bf4e171 76b35f0 d83040c d3fa0a1 8054e14 fea8f5c aaf43ff 5bacee0 5013c78 c447413 Git Objekte Commits 20 / 79 Commit-History gerichteter, azyklischer Graph der Commit-Geschichte e0d8d74 d2cb604 fdd8901 b7f63a4 11a4fcf ab32698 52742ac 597429c bf4e171 76b35f0 d83040c d3fa0a1 8054e14 fea8f5c aaf43ff 5bacee0 5013c78 c447413 Git Objekte Commits 20 / 79 Commit-History gerichteter, azyklischer Graph der Commit-Geschichte e0d8d74 d2cb604 fdd8901 b7f63a4 11a4fcf ab32698 52742ac 597429c bf4e171 76b35f0 d83040c d3fa0a1 8054e14 fea8f5c aaf43ff 5bacee0 5013c78 c447413 Git Objekte Commits 20 / 79 Commit-History gerichteter, azyklischer Graph der Commit-Geschichte e0d8d74 d2cb604 fdd8901 b7f63a4 11a4fcf ab32698 52742ac 597429c bf4e171 76b35f0 d83040c d3fa0a1 8054e14 fea8f5c aaf43ff 5bacee0 5013c78 c447413 Git Objekte Commits 20 / 79 Commit-History gerichteter, azyklischer Graph der Commit-Geschichte e0d8d74 d2cb604 fdd8901 b7f63a4 11a4fcf ab32698 52742ac 597429c bf4e171 76b35f0 d83040c d3fa0a1 8054e14 fea8f5c aaf43ff 5bacee0 5013c78 c447413 Git Objekte Commits 20 / 79 Referenzen SHA-1-IDs sind unhandlich, schwer zu merken und semantikarm Referenzen (Refs) sind selbst-definierbare Namen verweisen auf Commits oder auf andere Refs (! symbolische Refs) wichtige Standardreferenz: HEAD { verweist auf aktuellen Commit wichtige Arten\ von Refs: " Tags (! refs/tags/) Branches (! refs/heads/) Remotes (! refs/remotes/) ... heads/master 6ef9349 7af1ce5 heads/work d3fa0a1 remotes/doc/HEAD HEAD c3a4a13 e6df2e5 fea8f5c aaf43ff 5bacee0 tags/v1.0 5013c78 c447413 Git Referenzen 21 / 79 Referenzen SHA-1-IDs sind unhandlich, schwer zu merken und semantikarm Referenzen (Refs) sind selbst-definierbare Namen verweisen auf Commits oder auf andere Refs (! symbolische Refs) wichtige Standardreferenz: HEAD { verweist auf aktuellen Commit wichtige Arten\ von Refs: " Tags (! refs/tags/) Branches (! refs/heads/) Remotes (! refs/remotes/) ... heads/master 6ef9349 7af1ce5 heads/work d3fa0a1 remotes/doc/HEAD HEAD c3a4a13 e6df2e5 fea8f5c aaf43ff 5bacee0 tags/v1.0 5013c78 c447413 Git Referenzen 21 / 79 Einschub: Angabe von Commits { Revisionen Revision benennt ein Commit-Objekt Angabe als SHA-1 Eingabe eines eindeutigen Pr¨afixes genugt¨ mindestens 4 Zeichen oft: 7 Zeichen (beliebte Voreinstellung) Angabe als Ref { Suchreihenfolge: 1 name (HEAD, FETCH HEAD, ORIG HEAD, MERGE HEAD) 2 refs/name 3 refs/tags/name 4 refs/heads/name 5 refs/remotes/name 6 refs/remotes/name/HEAD Angabe uber¨ die Commit-Geschichte Git Einschub: Revisionen 22 / 79 Einschub: Angabe von Commits { Revisionen Revision benennt ein Commit-Objekt Angabe als SHA-1 Eingabe eines eindeutigen Pr¨afixes genugt¨ mindestens 4 Zeichen oft: 7 Zeichen (beliebte Voreinstellung) Angabe als Ref { Suchreihenfolge: 1 name (HEAD, FETCH HEAD, ORIG HEAD, MERGE HEAD) 2 refs/name 3 refs/tags/name 4 refs/heads/name 5 refs/remotes/name 6 refs/remotes/name/HEAD Angabe uber¨ die Commit-Geschichte Git Einschub: Revisionen 22 / 79 Einschub: Angabe von Commits { Revisionen Geschichtstraverse mit der Tilde (~) Sei x eine Revision. x~ bezeichnet den ersten Parent von x x~n bezeichnet den ersten Parent der n-ten Generation HEAD, HEAD~0 c1f7fd2 HEAD HEAD~, HEAD~1 7ce73d1 HEAD~~, HEAD~2 6ef9349 7af1ce5 HEAD~~~, HEAD~3 c3a4a13 e6df2e5 HEAD~~~~, HEAD~4 aaf43ff HEAD~~~~~, HEAD~5 5013c78 Git Einschub: Revisionen 23 / 79 Einschub: Angabe von Commits { Revisionen Geschichtstraverse mit der Tilde (~) Sei x eine Revision. x~ bezeichnet den ersten Parent von x x~n bezeichnet den ersten Parent der n-ten Generation
Recommended publications
  • Common Tools for Team Collaboration Problem: Working with a Team (Especially Remotely) Can Be Difficult
    Common Tools for Team Collaboration Problem: Working with a team (especially remotely) can be difficult. ▹ Team members might have a different idea for the project ▹ Two or more team members could end up doing the same work ▹ Or a few team members have nothing to do Solutions: A combination of few tools. ▹ Communication channels ▹ Wikis ▹ Task manager ▹ Version Control ■ We’ll be going in depth with this one! Important! The tools are only as good as your team uses them. Make sure all of your team members agree on what tools to use, and train them thoroughly! Communication Channels Purpose: Communication channels provide a way to have team members remotely communicate with one another. Ideally, the channel will attempt to emulate, as closely as possible, what communication would be like if all of your team members were in the same office. Wait, why not email? ▹ No voice support ■ Text alone is not a sufficient form of communication ▹ Too slow, no obvious support for notifications ▹ Lack of flexibility in grouping people Tools: ▹ Discord ■ discordapp.com ▹ Slack ■ slack.com ▹ Riot.im ■ about.riot.im Discord: Originally used for voice-chat for gaming, Discord provides: ▹ Voice & video conferencing ▹ Text communication, separated by channels ▹ File-sharing ▹ Private communications ▹ A mobile, web, and desktop app Slack: A business-oriented text communication that also supports: ▹ Everything Discord does, plus... ▹ Threaded conversations Riot.im: A self-hosted, open-source alternative to Slack Wikis Purpose: Professionally used as a collaborative game design document, a wiki is a synchronized documentation tool that retains a thorough history of changes that occured on each page.
    [Show full text]
  • Opinnäytetyö Ohjeet
    Lappeenrannan–Lahden teknillinen yliopisto LUT School of Engineering Science Tietotekniikan koulutusohjelma Kandidaatintyö Mikko Mustonen PARHAITEN OPETUSKÄYTTÖÖN SOVELTUVAN VERSIONHALLINTAJÄRJESTELMÄN LÖYTÄMINEN Työn tarkastaja: Tutkijaopettaja Uolevi Nikula Työn ohjaaja: Tutkijaopettaja Uolevi Nikula TIIVISTELMÄ LUT-yliopisto School of Engineering Science Tietotekniikan koulutusohjelma Mikko Mustonen Parhaiten opetuskäyttöön soveltuvan versionhallintajärjestelmän löytäminen Kandidaatintyö 2019 31 sivua, 8 kuvaa, 2 taulukkoa Työn tarkastajat: Tutkijaopettaja Uolevi Nikula Hakusanat: versionhallinta, versionhallintajärjestelmä, Git, GitLab, SVN, Subversion, oppimateriaali Keywords: version control, version control system, Git, GitLab, SVN, Subversion, learning material LUT-yliopistossa on tietotekniikan opetuksessa käytetty Apache Subversionia versionhallintaan. Subversionin käyttö kuitenkin johtaa ylimääräisiin ylläpitotoimiin LUTin tietohallinnolle. Lisäksi Subversionin julkaisun jälkeen on tullut uusia versionhallintajärjestelmiä ja tässä työssä tutkitaankin, olisiko Subversion syytä vaihtaa johonkin toiseen versionhallintajärjestelmään opetuskäytössä. Työn tavoitteena on löytää opetuskäyttöön parhaiten soveltuva versionhallintajärjestelmä ja tuottaa sille opetusmateriaalia. Työssä havaittiin, että Git on suosituin versionhallintajärjestelmä ja se on myös suhteellisen helppo käyttää. Lisäksi GitLab on tutkimuksen mukaan Suomen yliopistoissa käytetyin ja ominaisuuksiltaan ja hinnaltaan sopivin Gitin web-käyttöliittymä. Näille tehtiin
    [Show full text]
  • Configuration Management with Ansible And
    Configuration management with Ansible and Git Paul Waring ([email protected], @pwaring) January 10, 2017 Topics I Configuration management I Version control I Firewall I Apache / nginx I Git Hooks I Bringing it all together Configuration management I Old days: edit files on each server, manual package installation I Boring, repetitive, error-prone I Computers are good at this sort of thing I Automate using shellscripts - doesn’t scale, brittle I Create configuration file and let software do the rest I Less firefighting, more tea-drinking Terminology I Managed node: Machines (physical/virtual) managed by Ansible I Control machine: Runs the Ansible client I Playbook/manifest: Describes how a managed node is configured I Agent: Runs on managed nodes Ansible I One of several options I Free and open source software - GPLv3 I Developed by the community and Ansible Inc. I Ansible Inc now part of RedHat I Support via the usual channels, free and paid Alternatives to Ansible I CfEngine I Puppet, Chef I SaltStack Why Ansible? I Minimal dependencies: SSH and Python 2 I Many Linux distros ship with both I No agents/daemons (except SSH) I Supports really old versions of Python (2.4 / RHEL 5) on nodes I Linux, *BSD, macOS and Windows Why Ansible? I Scales up and down I Gentle learning curve I But. no killer features I A bit like: vim vs emacs Configuration file I Global options which apply to all nodes I INI format I Write once, then leave Configuration file [defaults] inventory= hosts Inventory file I List of managed nodes I Allows overriding of global options on per-node basis I Group similar nodes, e.g.
    [Show full text]
  • MAUS: the MICE Analysis User Software
    RAL-P-2018-007 MAUS: The MICE Analysis User Software R. Asfandiyarov,a R. Bayes,b V. Blackmore,c M. Bogomilov,d D. Colling,c A.J. Dobbs,c F. Drielsma,a M. Drews,h M. Ellis,c M. Fedorov,e P. Franchini,f R. Gardener,g J.R. Greis,f P.M. Hanlet,h C. Heidt,i C. Hunt,c G. Kafka,h Y. Karadzhov,a A. Kurup,c P. Kyberd,g M. Littlefield,g A. Liu,j K. Long,c;n D. Maletic,k J. Martyniak,c S. Middleton,c T. Mohayai,h; j J.J. Nebrensky,g J.C. Nugent,b E. Overton,l V. Pec,l C.E. Pidcott,f D. Rajaram,h;1 M. Rayner,m I.D. Reid,g C.T. Rogers,n E. Santos,c M. Savic,k I. Taylor,f Y. Torun,h C.D. Tunnell,m M.A. Uchida,c V. Verguilov,a K. Walaron,b M. Winter,h S. Wilburl aDPNC, section de Physique, Université de Genève, Geneva, Switzerland bSchool of Physics and Astronomy, Kelvin Building, The University of Glasgow, Glasgow, UK cDepartment of Physics, Blackett Laboratory, Imperial College London, London, UK dDepartment of Atomic Physics, St. Kliment Ohridski University of Sofia, Sofia, Bulgaria eRadboud University of Nijmegen, Netherlands f Department of Physics, University of Warwick, Coventry, UK gBrunel University, Uxbridge, UK hPhysics Department, Illinois Institute of Technology, Chicago, IL, USA iUniversity of California, Riverside, CA, USA j Fermilab, Batavia, IL, USA k Institute of Physics, University of Belgrade, Serbia lDepartment of Physics and Astronomy, University of Sheffield, Sheffield, UK mDepartment of Physics, University of Oxford, Denys Wilkinson Building, Oxford, UK nSTFC Rutherford Appleton Laboratory, Harwell Oxford, Didcot, UK E-mail: [email protected] Abstract: The Muon Ionization Cooling Experiment (MICE) collaboration has developed the MICE Analysis User Software (MAUS) to simulate and analyze experimental data.
    [Show full text]
  • NA-42 TI Shared Software Component Library FY2011 Final Report
    PNNL-20567 Prepared for the U.S. Department of Energy under Contract DE-AC05-76RL01830 NA-42 TI Shared Software Component Library FY2011 Final Report CK Knudson FC Rutz KE Dorow July 2011 DISCLAIMER This report was prepared as an account of work sponsored by an agency of the United States Government. Neither the United States Government nor any agency thereof, nor Battelle Memorial Institute, nor any of their employees, makes any warranty, express or implied, or assumes any legal liability or responsibility for the accuracy, completeness, or usefulness of any information, apparatus, product, or process disclosed, or represents that its use would not infringe privately owned rights. Reference herein to any specific commercial product, process, or service by trade name, trademark, manufacturer, or otherwise does not necessarily constitute or imply its endorsement, recommendation, or favoring by the United States Government or any agency thereof, or Battelle Memorial Institute. The views and opinions of authors expressed herein do not necessarily state or reflect those of the United States Government or any agency thereof. PACIFIC NORTHWEST NATIONAL LABORATORY operated by BATTELLE for the UNITED STATES DEPARTMENT OF ENERGY under Contract DE-AC05-76RL01830 Printed in the United States of America Available to DOE and DOE contractors from the Office of Scientific and Technical Information, P.O. Box 62, Oak Ridge, TN 37831-0062; ph: (865) 576-8401 fax: (865) 576-5728 email: [email protected] Available to the public from the National Technical Information Service, U.S. Department of Commerce, 5285 Port Royal Rd., Springfield, VA 22161 ph: (800) 553-6847 fax: (703) 605-6900 email: [email protected] online ordering: http://www.ntis.gov/ordering.htm This document was printed on recycled paper.
    [Show full text]
  • Institutionen För Datavetenskap
    Institutionen f¨ordatavetenskap Department of Computer and Information Science Final thesis Graphical User Interfaces for Distributed Version Control Systems by Kim Nilsson LIU-IDA/LITH-EX-A{08/057{SE 2008{12{05 Linköpings universitet Linköpings universitet SE-581 83 Linköping, Sweden 581 83 Linköping Final thesis Graphical User Interfaces for Distributed Version Control Systems by Kim Nilsson LIU-IDA/LITH-EX-A{08/057{SE 2008{12{05 Supervisor: Anders H¨ockersten, Opera Software Examiner: Henrik Eriksson, MDA Abstract Version control is an important tool for safekeeping of data and collaboration between colleagues. These days, new distributed version control systems are growing increasingly popular as successors to centralized systems like CVS and Subversion. Graphical user interfaces (GUIs) make it easier to interact with version control systems, but GUIs for distributed systems are still few and less mature than those available for centralized systems. The purpose of this thesis was to propose specific GUI ideas to make dis- tributed systems more accessible. To accomplish this, existing version con- trol systems and GUIs were examined. A usage survey was conducted with 20 participants consisting of software engineers. Participants were asked to score various aspects of version control systems according to usage fre- quency and usage difficulty. These scores were combined into an indexof each aspect's \unusability" and thus its need of improvement. The primary problems identified were committing, inspecting the work- ing set, inspecting history and synchronizing. In response, a commit helper, a repository visualizer and a favorite repositories list were proposed, along with several smaller suggestions. These proposals should constitute a good starting point for developing GUIs for distributed version control systems.
    [Show full text]
  • Download Tortoisegit for Mac
    Download Tortoisegit For Mac Download Tortoisegit For Mac 1 / 4 2 / 4 Simple collaboration from your desktop GitHub Desktop is a seamless way to contribute to projects on GitHub and GitHub Enterprise. 1. tortoisegit 2. tortoisegit for mac 3. tortoisegit ssh key Git Large File Support Sourcetree supports Git LFS, allowing teams to track large assets in one single place.. Available for Mac and Windows Youll find all the projects youre working on listed in the sidebar.. All of the same Git functionality is present, but the way it is provided is entirely different.. Tortoisegit Mac OS X AndSmartGit is a front-end for the distributed version control system Git and runs on Windows, Mac OS X and Linux.. Other interesting Mac alternatives to TortoiseGit are GitKraken (Free Personal), SmartGit (Free Personal), GitHub Desktop (Free, Open Source) and Fork (Paid). tortoisegit tortoisegit download, tortoisegit for mac, tortoisegit tutorial, tortoisegit ssh key, tortoisegit change password, tortoisegit rebase, tortoisegitplink unknown option -o, tortoisegit, tortoisegit delete branch, tortoisegit vs sourcetree, tortoisegit mac, tortoisegit add ssh key, tortoisegit linux, tortoisegit cherry pick Hp Officejet 3830 Scanner Software BTW, on the Windows side, Ive generally found Tortoise to be a fairly awful git client.. A intuitive, fast, and beautiful cross- platform Git client, of which the free version can (only) be used on Open Source software.. If that doesnt suit you, our users have ranked 44 alternatives to TortoiseGit and many of them are available for Mac so hopefully you can find a suitable replacement.. Sourcetree strips away the complexity of DVCS and makes it usable for mere mortals.
    [Show full text]
  • Universidad Polit´Ecnica De Madrid
    UNIVERSIDAD POLITECNICA´ DE MADRID ESCUELA TECNICA´ SUPERIOR DE INGENIEROS DE TELECOMUNICACION´ DEPARTAMENTO DE INGENIER´IA DE SISTEMAS TELEMATICOS´ T´ıtulo: “Development of a management system for virtual machines on private clouds” Autor: D. Mattia Peirano Tutor: D. Juan Carlos Due˜nasL´opez Departamento: Departamento de Ingenier´ıade Sistemas Telem´aticos Tribunal calificador: Presidente: D. Juan Carlos Due˜nasL´opez Vocal: D. David Fern´andezCambronero Secretario: D. Gabriel Huecas Fern´andez-Toribio Fecha de lectura: 15 de Marzo 2013 Calificaci´on: UNIVERSIDAD POLITECNICA´ DE MADRID ESCUELA TECNICA´ SUPERIOR DE INGENIEROS DE TELECOMUNICACION´ PROYECTO FIN DE CARRERA Development of a management system for virtual machines on private clouds Mattia Peirano 2013 To my sister Acknowledgements During these five years between Politecnico di Torino and Universidad Polit´ecnica de Madrid, I have had the chance to meet many people along the way: some of them have come along with me, others joined just to share a stretch of road together and then follow on their own. I want to begin by expressing my gratitude to those people who made this expe- rience possible. First I want to thank my family that allowed me to embark on this adventure: they supported me during this year away with its ups and downs, and, even from afar, with their great love, they have been present in some way. Thanks to Juan Carlos for allowing me to finish my studies, by welcoming me in his research group. He has been my guiding light since the very beginning of my adventure at the ETSIT, which began with his own lecture on Telematics Ser- vices Architecture.
    [Show full text]
  • Git Essentials
    www.hellodigi.ir Git Essentials Create, merge, and distribute code with Git, the most powerful and flexible versioning system available Ferdinando Santacroce BIRMINGHAM - MUMBAI www.hellodigi.ir Git Essentials Copyright © 2015 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: April 2015 Production reference: 1240415 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-78528-790-9 www.packtpub.com www.hellodigi.ir Credits Author Project Coordinator Ferdinando Santacroce Kinjal Bari Reviewers Proofreaders Fabrizio Donina Simran Bhogal Giovanni Giorgi Safis Editing Giovanni Toraldo Paul Hindle Bernadette Watkins Commissioning Editor Edward Gordon Indexer Tejal Daruwale Soni Acquisition Editor Meeta Rajani Graphics Jason Monteiro Content Development Editor Abhinash Sahu Samantha Gonsalves Production Coordinator Technical Editor Nilesh R.
    [Show full text]
  • A Practical Introduction to Version Control Systems
    Version Control Systems Centralised - SVN Decentralised - Git A Practical Introduction to Version Control Systems A random CAKES(less) talk on a topic I hope others find useful! Andrew Brampton [email protected] 4th February 2009 Andrew Brampton A Practical Introduction to Version Control Systems Version Control Systems Centralised - SVN Decentralised - Git Outline 1 Version Control Systems What is Version Control Basic Principles Versioning Models 2 Centralised - SVN Overview Commands 3 Decentralised - Git Overview Commands Andrew Brampton A Practical Introduction to Version Control Systems Version Control Systems What is Version Control Centralised - SVN Basic Principles Decentralised - Git Versioning Models What can version control do for you? Backup your work Rollback changes The original time machine Collaborate with others Multiple users can share and edit documents Access documents online If your repository is online, you can easily access your files anywhere Andrew Brampton A Practical Introduction to Version Control Systems Version Control Systems What is Version Control Centralised - SVN Basic Principles Decentralised - Git Versioning Models The Repository Description Where all the files and directories are stored Stores the histories of all your files and directories Users read and write files to it Andrew Brampton A Practical Introduction to Version Control Systems Version Control Systems What is Version Control Centralised - SVN Basic Principles Decentralised - Git Versioning Models The Working Copy Description A local copy
    [Show full text]
  • Programování Služeb Pro Přenos Hlasu Po Ip Sítích Na Portálech Pro Sdílený Vývoj Aplikací
    PROGRAMOVÁNÍ SLUŽEB PRO PŘENOS HLASU PO IP SÍTÍCH NA PORTÁLECH PRO SDÍLENÝ VÝVOJ APLIKACÍ Bakalářská práce Studijní program: B2646 – Informační technologie Studijní obor: 1802R007 – Informační technologie Autor práce: Martin Bureš Vedoucí práce: Ing. Jana Vitvarová, Ph.D. Liberec 2014 PROGRAMMING SERVICES FOR VOICE OVER IP NETWORKS USING WEB-BASED HOSTING FOR SOFTWARE DEVELOPMENT Bachelor thesis Study programme: B2646 – Information Technology Study branch: 1802R007 – Information Technology Author: Martin Bureš Supervisor: Ing. Jana Vitvarová, Ph.D. Liberec 2014 Poděkování Děkuji Ing. Janě Vitvarové, Ph.D. za vedení mé bakalářské práce a za poskytnutí tohoto tématu, které mi pomohlo rozšířit své poznatky v této oblasti. Abstrakt Bakalářská práce se zabývá tvorbou webového ovládacího rozhraní pro telefonní ústřednu Asterisk s využitím prostředků pro sdílený vývoj aplikací. Na počátku práce jsou použité prostředky komunitního vývoje analyzovány. Další část se zabývá popisem použitých technologií nutných pro správnou funkčnost celého řešení, kterými jsou například skriptovací jazyk PHP, databázový server MySQL a samozřejmě software pro provoz telefonní ústředny – Asterisk. V praktické části se tato práce věnuje návrhu a vytvoření příslušného webového rozhraní. Nedílnou součástí praktické části je i úprava nastavení Asterisku, aby byly jednotlivé komponenty provázané a aby bylo celé řešení funkční. Klíčová slova: VoIP, Asterisk, PHP, ovládací rozhraní, komunitní vývoj Abstract The bachelor thesis deals with the creation of web control interface for Asterisk PBX with resources for shared application development. Used tools for community development are analyzed at the beginning of this work. Another section deals with the description of the technologies necessary for the proper functioning of the entire solution, which is a scripting language such as PHP, MySQL database server, and of course software to operate PBX – Asterisk.
    [Show full text]
  • Version Control Systems, Documentation Management & Helpdesk
    Version Control Systems, Documentation Management & Helpdesk __ .-. | | | |M|_|A|N| |A|a|.|.|<\ |T|r| | | \\ |H|t|M|Z| \\ ”Bookshelf” by | |!| | | \> David S. Issel ”””””””””””””””””” System and Network Administration Revision 2 (2020/21) Table of contents ▶ VCS History ▶ VCS Operations ▶ Hosting VCS UI ▶ Documention Management ▶ Bug-Tracking & Helpdesk Systems VCS History What is it good for?… ▶ dealing with large amount of code ▶ dealing with large development team ▶ trace back issues and incriminating commits what content to version control? ▶ for code, obviously ▶ documentation (Markdown, RST) ▶ web design (CSS) ▶ (anything text-based) even binaries with Git Large File Storage (LFS) –> pointers instead of blobs Two bits of history… ▶ 1st gen: pessimistic ▶ 2nd gen: optimistic ▶ 3rd gen: distributed Pessimistic ▶ Source Code Control System (SCCS) ▶ GNU Revision Control System (RCS) –> file locks Optimistic ▶ Concurrent Versions System (CVS) ▶ Subversion (SVN) ▶ Helix Core (Perforce) –> merging when no conflicts –> fix conflicts manually Distributed VCS // nvie.com How can alice have two git remotes?… (same for david) Distributed ▶ BitKeeper (open-sourced 2016) ▶ Darcs ▶ Mercurial ▶ GIT ▶ GNU Bazaar –> even branches can merge… How to fix conflicts?… ==> you get to edit the conflicting changes manually during commits (very similarly as with CVS) CVS in theory ▶ local copy of remote repository ▶ remote is kind of bare… ▶ commit == push your change to the online and centralized repository ▶ no staging ▶ use tag (branch) to track a (rather
    [Show full text]