Code Review with Gerrit

Total Page:16

File Type:pdf, Size:1020Kb

Code Review with Gerrit Code review with Gerrit Emmanuel Jeanvoine, S´ebastien Badia 2013/06/12 1 / 36 Agenda 1 Code review 2 Gerrit 3 Social and technical organization 4 Gerrit and continuous integration 5 Conclusion 2 / 36 Agenda 1 Code review 2 Gerrit 3 Social and technical organization 4 Gerrit and continuous integration 5 Conclusion 3 / 36 Code review defined by Wikipedia What is it? Code review is systematic examination of computer source code Why? It is intended to find and fix mistakes overlooked in the initial development phase, improving both the overall quality of software and the developers’ skills 4 / 36 Kind of software testing • Static testing I does not require executing program like dynamic testing • Can be omitted in a software development process and in practice is • Usually, strongly improves the software quality • Some statistics1 I Typical code review rates are about 150 lines of code per hour I About 65% defect removal I Up to 75% of code review defects affect software evolution rather than functionality 1http://en.wikipedia.org/wiki/Code_review 5 / 36 Types of code review • Over-the-shoulder • Email pass-around • Pair programming • Tool-assisted code 6 / 36 Over-the-shoulder review Easy to implement , Fast to complete , Might work remotely with desktop-sharing ,and conference calls Reviewer led through code at author’s pace / Usually no verification that defects are really /fixed Easy to accidentally skip over a changed file / Impossible to enforce the process / No metrics or process /measurement/improvement Courtesy of http://www.methodsandtools.com/archive/archive.php?id=66 7 / 36 Email pass-around review Fairly easy to implement , Works with remote developers , SCM system can initiate reviews ,automatically Easy to involve other people , Does not interrupt reviewers , Usually no verification that defects /are really fixed How do you know when the /review is ”complete?” Impossible to know if reviewers are /just deleting those emails No metrics or process /measurement/improvement Courtesy of http://www.methodsandtools.com/archive/archive.php?id=66 8 / 36 Pair-programming review Shown to be effective at finding bugs and ,promoting knowledge-transfer Reviewer is ”up close” to the code so can ,provide detailed review Some developers like it , Some developers don’t like it / Reviewer is ”too close” to the code to /step back and see problems Consumes a lot of up-front time / Doesn’t work with remote developers / No metrics or process /measurement/improvement Courtesy of http://www.methodsandtools.com/archive/archive.php?id=66 9 / 36 Tool-assisted code review • Refers to any process where specialized tools are used in all aspects of the review I collecting files I transmitting and displaying files I commentary I defects • Can refer to I open-source projects I commercial software I home-grown scripts • In any case, this is never free I you’re either paying for the tool or paying your own folks to understand an existing one/create a new one I you have to make sure the tool matches your desired workflow Courtesy of http://www.methodsandtools.com/archive/archive.php?id=66 10 / 36 Agenda 1 Code review 2 Gerrit 3 Social and technical organization 4 Gerrit and continuous integration 5 Conclusion 11 / 36 Gerrit Gerrit2 • Works on top of GIT • Is open source (Apache v2.0) • Developed by Google for Android • Fork of Rietveld3 (SVN code review) • Used in big projects: LibreOffice, OpenStack, Qt, Mediawiki, ... • Easily customizable, plugins • Active project 2.5.4 released on 2013/05/18 2http://code.google.com/p/gerrit/ 3http://code.google.com/p/rietveld/ 12 / 36 Git vs. Gerrit Git workflow Barbie Fetch/Push Git Authoritative Repository Fetch/Push Ken 13 / 36 Git vs. Gerrit Gerrit workflow Gerrit Fetch Fetch Authoritative Repository Pumbaa Timon Submit Push Pending Changes Push Fetch Approve Reviewer 13 / 36 Gerrit user-side • Gerrit account creation in 3 steps (login,mail,ssh key) • Differences with GIT: I Direct push prohibited (branch become HEAD:refs/for/branch) 4 I User ChangeId (hashed in your commit message) • SSH commands5 (ls-project, review, reviewers) • Tools beyond gerrit: 6 I Git-review (patch set lists / project setup / ease submit) 4https://gerrit.wikimedia.org/r/Documentation/user-changeid.html 5https://gerrit.wikimedia.org/r/Documentation/cmd-index.html 6http://www.mediawiki.org/wiki/Gerrit/git-review 14 / 36 Gerrit demo 15 / 36 Gerrit internals (Server-side) • Requirements I Java 1.6 (minimum) I Database (mysql/pgsql/h2) I A MTA properly configured • Installation very simplistic (CLI assisted) or Puppet module • Firewall needs (must be changed) I Gerrit commands/SSH port (default: 29418) I Web access (80 and/or 443), but can be proxified • Authentication: OpenID, LDAP, Apache (htpasswd), Internal • Replication configuration I By project (with authentication group), ideal for Inria forge. I Or mirror mode, (all gerrit project are mirrored/replicated). 16 / 36 Integration with an existing project Authoritative Repository (GForge Inria) Mirror Gerrit Fetch Fetch Authoritative Repository Ingo Alan Submit Push Pending Changes Push Fetch Approve Reviewer 17 / 36 Agenda 1 Code review 2 Gerrit 3 Social and technical organization 4 Gerrit and continuous integration 5 Conclusion 18 / 36 Context: software development in AlGorille • Distributed systems experimentation: several software projects I ADT Kadeploy I Lucas N. (scientific leader) I Emmanuel J. (technical leader and former developer) I Luc S. (developer) I several interns I ADT Solf`ege I Lucas N. (scientific leader) I Emmanuel J. (developer and technical leader on some parts) I Luc S. (former developer) I several interns I Ruby CUTE (Commonly Used Tools for grid Experimentation) I large part of AlGorille team: Lucas N., Emmanuel J., Luc S., S´ebastien B., Tomasz B. I several interns • It’s hard for project managers to keep an eye on all the developments • It’s a good idea to benefit from former developer’s experience • One year ago we have chosen to try code review 19 / 36 Technical organization 1/2 Implementation • Gerrit server installed and administrated by S´ebastien B. • Kadeploy, Distem, and RubyCUTE repositores are using Gerrit • Everybody can technically perform reviews, in practice Emmanuel J. and Luc S. are the main reviewers • After a commit, Gerrit sends a mail to say that a pending review is available • Only one reviewer is needed to perform a review 20 / 36 Technical organization 2/2 Our rules • As a reviewer I Do not review your own code I Try to review quickly after a notification • As a developer I Try to perform small and documented commits I Create a local branch per feature/bugfix I If a commit must not be reviewed right now, inform reviewers with the appropriate Gerrit tag 21 / 36 The real life trilogy – episode 1 Reviewers can be under pressure • Luc S. – Emmanuel J., can you have a look to Gerrit? • Emmanuel J. – Erm, I am very busy right now. I will do it later • Luc S. – Come on, I have promised to provide S´ebastien B. with a new Kadeploy3 RC release in 10 minutes • Emmanuel J. – OK . (Grrrr!, 150 LOC to review !!!) 22 / 36 The real life trilogy – episode 2 Using Gerrit is a bit more tricky than using only Git • Luc S. – Emmanuel J., can you have a look to Gerrit? I have 17 pending patchsets • Emmanuel J. – OK, I am in a good mood this morning. After the review, some patch sets are submitted and a few are rejected. Luc S., concerning your patchsets 3, 12, 14, I think they are not corrects because . • Luc S. – OK. I am doing this right now. After the modifications, Emmanuel J., that is modified, you can have a look • Emmanuel J. – I am OK with with your modifications but Gerrit does not want to merge the patchsets :-D • Luc S. – Grrrr! I haven’t created every patchsets from separate branches ... S´ebastien B., HELP!!! 23 / 36 The real life trilogy – episode 3 Gossiping should be avoided • Luc S. – Emmanuel J., I have submitted a patchset but do not review/submit it because I have found a bug in it • Emmanuel J. – OK • meanwhile, Lucas N. checks its mails during a practical session break, sees the patch set, reviews it and submits it • Luc S. – Grrrr! Lucas N. has merged the patchset . 24 / 36 Agenda 1 Code review 2 Gerrit 3 Social and technical organization 4 Gerrit and continuous integration 5 Conclusion 25 / 36 Human time is expensive • Verifying that a code is running is really important I it should be done after every commit I but asking a human to do it has no value added • Continuous integration service (Jenkins at Inria) can do that for us, this is based on I a test suite (unit/integration/system tests) that validates the correct behavior I a Gerrit plugin for Jenkins that triggers build and test suite once a patch set is submitted to Gerrit 26 / 36 Gerrit and CI workflow Courtesy of http://blogs.collab.net/teamforge/teamforge-git-gerrit-integration-with-jenkins-ci 27 / 36 Jenkins plugin • Gerrit Trigger: https://wiki.jenkins-ci.org/display/JENKINS/Gerrit+Trigger • Requires Git plugin too • Creates an SSH connexion to the Gerrit server from Jenkis and check for new patch sets 28 / 36 Jenkins configuration - 1/2 29 / 36 Jenkins configuration - 2/2 30 / 36 Implementation in our main projects • No trivial since our projects rely on some low level (software and hardware) parts • Distem: an emulator for distributed systems study I based on: LXC virtualization, traffic control, cpufreq I partial test suite (no virtual network, no cpufreq) executed after every Gerrit submitted patch set on CI I complete test suite executed directly on Grid’5000 every week • Kadeploy: a cluster
Recommended publications
  • Design Options of Store-Oriented Software Ecosystems: an Investigation of Business Decisions ∗
    Design Options of Store-Oriented Software Ecosystems: An Investigation of Business Decisions ∗ Bahar Jazayeri1, Olaf Zimmermann2, Gregor Engels1, Jochen K¨uster3, Dennis Kundisch1, Daniel Szopinski1 1 Paderborn University, Germany fbahar.jazayeri,gregor.engels,dennis.kundisch,[email protected] 2 University of Applied Sciences of Eastern Switzerland, Switzerland [email protected] 3 Bielefeld University of Applied Sciences, Germany [email protected] Abstract. Nowadays companies like Apple create ecosystems of third- party providers and users around their software platforms. Often online stores like Apple App Store are created to directly market third-party solutions. We call such ecosystems store-oriented software ecosystems. While the architecture of these ecosystems is mainly derived from busi- ness decisions of their owners, ecosystems with greatly different archi- tectural designs have been created. This diversity makes it challenging for future ecosystem providers to understand which architectural design is suitable to fulfill certain business decisions. In turn, opening a plat- form becomes risky while endangering intellectual property or scarifying quality of services. In this paper, we identify three main design options of store-oriented software ecosystems by classifying existing ecosystems based on similarities in their business decisions. We elaborate on the design options, discuss their main contributions, and provide exemplary ecosystems. Our work provides aspiring ecosystem providers with the reusable knowledge of existing ecosystems and helps them to take more informed architectural decisions and reduce risks in future. Keywords: Software ecosystems, Reusable designs, Variabilities 1 Introduction Software ecosystems have become an emerging architectural approach for many companies to grow. The term software ecosystem is inspired from ecological ecosystems that are the result of an interplay between organisms as well as interactions with a physical environment [1].
    [Show full text]
  • Cross-Platform Environment for Application Life Cycle Management
    International Journal “Information Theories and Applications”, Vol. 24, Number 2, © 2017 177 CROSS-PLATFORM ENVIRONMENT FOR APPLICATION LIFE CYCLE MANAGEMENT Elena Chebanyuk, Oleksii Hlukhov Abstract: “Application Lifecycle Management (ALM) integrates and governs the planning, definition, design, development, testing, deployment, and management phases throughout the application lifecycle” [OMG, 2006]. This paper is devoted to designing of ALM for supporting all software development processes. A review of papers, making strong contribution for improving software development life cycle processes is represented. This review touches three branches of investigation, namely papers, related to: (1) improving of communication processes between stakeholders; (2) increasing effectiveness of some operations in software development life cycle processes; (3) developing fundamental methods and tools for performing different operations related to several software development life cycle. Then comparative analysis of such ALM environments as Visual Studio, Team Foundation Server, FusionForge, TeamForge, IBM Rational Team Concert, IBM Rational Software Architect, and IBM Rational Functional Tester, is performed. Comparison of different ALM environments’ functionality lets to formulate requirements for designing cross-platform ALM environment. Then the conceptual schema of cross-platform ALM based on Eclipse environment is proposed. All plugins’ functionalities were properly tested. Collaboration of plugins for supporting several software development tasks
    [Show full text]
  • Collabnet Subversion Edge User Guide 2 | Subversion Edge | TOC
    CollabNet Subversion Edge User Guide 2 | Subversion Edge | TOC Contents Welcome to CollabNet Subversion Edge.............................................................................7 Set up Subversion Edge .......................................................................................................8 Install Subversion Edge ...........................................................................................................................8 Install Subversion Edge on Windows...........................................................................................8 Install Subversion Edge on Linux................................................................................................9 Install Subversion Edge on Solaris.............................................................................................10 Configure the server...............................................................................................................................12 Configure general server settings...............................................................................................12 Configure advanced server settings............................................................................................13 Configure authentication settings...............................................................................................13 Configure a proxy server............................................................................................................14 Configure the mail server...........................................................................................................14
    [Show full text]
  • IKAN ALM and Collabnet Teamforge Where Development, Testing and Operations Meet Table of Contents
    IKAN ALM and Collabnet TeamForge Where Development, Testing and Operations meet Table of contents Executive summary ..............................................................................................................................................3 Problem statement ...............................................................................................................................................4 Solution Description ............................................................................................................................................4 TeamForge and IKAN ALM ...........................................................................................................................5 Versioning .......................................................................................................................................................5 TeamForge Tracker ........................................................................................................................................6 Integrated Build and Deploy Process .......................................................................................................7 Notification .....................................................................................................................................................7 Short description of IKAN ALM ..........................................................................................................................8 Lifecycle ...........................................................................................................................................................8
    [Show full text]
  • Teamforge 6.2 Administration Guide 2 | Teamforge 6.2 | TOC
    TeamForge 6.2 Administration Guide 2 | TeamForge 6.2 | TOC Contents TeamForge system administrator how-tos..........................................................................7 Install CollabNet TeamForge 6.2..............................................................................................................7 Plan your CollabNet TeamForge 6.2 installation.........................................................................7 Set up networking for your TeamForge box ................................................................................8 Install CollabNet TeamForge 6.2 on Red Hat..............................................................................9 Install CollabNet TeamForge 6.2 on CentOS.............................................................................48 Install CollabNet TeamForge 6.2 on SuSE.................................................................................87 Install TeamForge on VMware or ESXi...................................................................................129 Upgrade to TeamForge 6.2 Patch ........................................................................................................132 Plan your upgrade to TeamForge 6.2........................................................................................132 Upgrade to TeamForge 6.2 on Red Hat....................................................................................133 Upgrade to TeamForge 6.2 on CentOS....................................................................................168
    [Show full text]
  • Real Time Sampling of Utilization at Ericsson Test Plants
    LiU-ITN-TEK-A--10/035--SE Real time sampling of utilization at Ericsson Test Plants Marky Egebäck Sebastian Lindqvist 2010-06-10 Department of Science and Technology Institutionen för teknik och naturvetenskap Linköping University Linköpings Universitet SE-601 74 Norrköping, Sweden 601 74 Norrköping LiU-ITN-TEK-A--10/035--SE Real time sampling of utilization at Ericsson Test Plants Examensarbete utfört i kommunikations- och transportsystem vid Tekniska Högskolan vid Linköpings universitet Marky Egebäck Sebastian Lindqvist Handledare Torbjörn Wikström Examinator Di Yuan Norrköping 2010-06-10 Upphovsrätt Detta dokument hålls tillgängligt på Internet – eller dess framtida ersättare – under en längre tid från publiceringsdatum under förutsättning att inga extra- ordinära omständigheter uppstår. Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner, skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för ickekommersiell forskning och för undervisning. Överföring av upphovsrätten vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av dokumentet kräver upphovsmannens medgivande. För att garantera äktheten, säkerheten och tillgängligheten finns det lösningar av teknisk och administrativ art. Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i den omfattning som god sed kräver vid användning av dokumentet på ovan beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan form eller i sådant sammanhang som är kränkande för upphovsmannens litterära eller konstnärliga anseende eller egenart. För ytterligare information om Linköping University Electronic Press se förlagets hemsida http://www.ep.liu.se/ Copyright The publishers will keep this document online on the Internet - or its possible replacement - for a considerable time from the date of publication barring exceptional circumstances.
    [Show full text]
  • A T T Dt Ti D a T T Dt Ti D Automated Testing and Devops for Continuous
    AtAutoma tdTted Testi ng and DevOps for Continuous Delivery Dan Gahafer July 2012 A Combat Support Agency What is DevOps? • The integration of software development with operations to enable the rapid delivery of new capabilities • Increase release frequency while reducing risk by: – Collaborating across organization – Reducing change scope – Increasing release coordination – Automating!!! Deploy is the new Build 2 A Combat Support Agency Role of Test • Despite the name, Test is not excluded Testers & Developer Sys Admins & Testers • Without integrated Test, DevOps will fail! • Test expands and adapts to support this constant motion – integrated with development and operations teams – graduate to scriptable test cases – support automation Better, faster, more comprehensive coverage 3 A Combat Support Agency Continuous Improvement Agile Software Continuous Continuous Development Integration Delivery Software Forge Jenkins Puppet Forge.mil CDP 4 A Combat Support Agency Distributed Dev Challenge TODAY: • Siloed development environments Shared Asset • Expensive and time consuming start-up Libraries & Repositories • Limit ed exposure, sh ari ng, or re-use Tester • Duplication of effort Developer Developer Shared Test & Development Certifier Tools/Services/Environments User GOAL: • Agile development and testing • Cross-program sharing: software and services • Early and continuous collaboration • Integrated approach to development life cycle • Extensible platform to support delivery of partner capabilities 5 A Combat Support Agency Application Delivery • Requirements Management • Source Code Management Code • Continuous Integration Build TtTest • Cloud / Environment Management • Configuration Management • Package Management 6 A Combat Support Agency Managing Chaos 7 A Combat Support Agency Continuous Delivery Principles – Software development should be a fast, repeatable process. – Versioning does not apply just to code, but to (almost) everything needed to build, deploy, test and release.
    [Show full text]
  • Collabnet Teamforge 5.4 Site Administrator Guide
    CollabNet TeamForge 5.4 Site Administrator Guide OpenTopic | TOC | 3 Contents Legal ®ne print.....................................................................................................................................................9 CollabNet, Inc. Trademark and Logos.....................................................................................................9 Highlights of CollabNet TeamForge 5.4 ...........................................................................................................11 Chapter 1: Manage users..............................................................................13 Create a new user account......................................................................................................................14 Create a user group.................................................................................................................................14 Add a user to a user group......................................................................................................................15 Find a user..............................................................................................................................................15 Edit a user account.................................................................................................................................15 Change multiple user accounts...............................................................................................................16 Reset the admin account password.........................................................................................................16
    [Show full text]
  • Teamforge 7.1 Administration Guide | Contents | 2
    TeamForge 7.1 Administration Guide | Contents | 2 Contents TeamForge system administrator how-tos.............................................................6 Install CollabNet TeamForge 7.1........................................................................................................................6 Plan your CollabNet TeamForge 7.1 installation.....................................................................................6 Set up networking for your TeamForge server........................................................................................7 Install CollabNet TeamForge 7.1 on Red Hat/CentOS............................................................................7 Install CollabNet TeamForge 7.1 on SuSE............................................................................................58 Install TeamForge on VMware Player or VMware ESXi................................................................... 107 Upgrade to TeamForge 7.1.............................................................................................................................. 111 Plan your upgrade to TeamForge 7.1.................................................................................................. 111 Upgrade to TeamForge 7.1 on Red Hat/CentOS................................................................................. 112 Upgrade to TeamForge 7.1 on SuSE................................................................................................... 182 Upgrade to CollabNet TeamForge 7.1 on a virtual
    [Show full text]
  • Agile ALM: Lightweight Tools and Agile Strategies
    Free ebooks ==> www.ebook777.com Lightweight tools and agile strategies MANNING MICHAEL HÜTTERMANN www.ebook777.comwww.it-ebooks.info Free ebooks ==> www.ebook777.com Agile ALM www.it-ebooks.info Free ebooks ==> www.ebook777.com www.ebook777.comwww.it-ebooks.info Free ebooks ==> www.ebook777.com Agile ALM Lightweight tools and Agile strategies MICHAEL HÜTTERMANN MANNING SHELTER ISLAND www.it-ebooks.info Free ebooks ==> www.ebook777.com For online information and ordering of this and other Manning books, please visit www.manning.com. The publisher offers discounts on this book when ordered in quantity. For more information, please contact Special Sales Department Manning Publications Co. 20 Baldwin Road PO Box 261 Shelter Island, NY 11964 Email: [email protected] ©2012 by Manning Publications Co. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by means electronic, mechanical, photocopying, or otherwise, without prior written permission of the publisher. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in the book, and Manning Publications was aware of a trademark claim, the designations have been printed in initial caps or all caps. Recognizing the importance of preserving what has been written, it is Manning’s policy to have the books we publish printed on acid-free paper, and we exert our best efforts to that end. Recognizing also our responsibility to conserve the resources of our planet, Manning books are printed on paper that is at least 15 percent recycled and processed without elemental chlorine.
    [Show full text]
  • Teamforge Git Integration - Gerrit 2.1.X (For Teamforge 7.1) 2 | Teamforge Git Integration | TOC
    TeamForge Git integration - Gerrit 2.1.x (for TeamForge 7.1) 2 | TeamForge Git integration | TOC Contents TeamForge Git integration...................................................................................................4 Set up the TeamForge Git integration.................................................................................6 Requirements for the TeamForge Git integration.....................................................................................6 Install the TeamForge Git integration ......................................................................................................6 Upgrade the Git integration along with TeamForge ................................................................................7 Upgrade the Git integration independent of TeamForge..........................................................................8 Reconfigure the TeamForge Git integration ............................................................................................9 Uninstall the TeamForge Git integration .................................................................................................9 TeamForge Git integration: VMware image.............................................................................................9 Change the administrator passwords (VMware image)...............................................................9 Change the administrator's SSH key pair (VMware image)......................................................10 Create a Git repository in TeamForge...............................................................................12
    [Show full text]
  • Integracija Softverskih Razvojnih Okruženja Sa On-Line Repozitorijumima Programskog Koda
    Univerzitet u Novom Sadu Tehnički fakultet “Mihajlo Pupin” Zrenjanin Integracija softverskih razvojnih okruženja sa on-line repozitorijumima programskog koda Integration of software development environments with on-line code repositories MASTER RAD Predmetni nastavnik: Student: Prof.dr. Ljubica Kazi Dragana Ljubinković MIT 12/2017 Smer: Informacione tehnologije - master Zrenjanin, 2018. Univerzitet u Novom Sadu Tehnički fakultet „Mihajlo Pupin” Zrenjanin Ključna dokumentacijska informacija Redni broj: RBR Identifikacioni broj: IBR Tip dokumentacije: Monografska dokumentacija TD Tip zapisa: Tekstualni štampani dokument TZ Vrsta rada: (dipl.mag.dokt.): Master rad VR Ime i prezime autora: Ljubinković Dragana AU Mentor (titular, ime, prezime, zvanje): Doc. dr Ljubica Kazi MN Naslov rada: Integracija softverskih razvojnih okruženja sa on- NS line repozitorijumima programskog koda Jezik publikacije: Srpski JZ Jezik izvoda: Srpski/Engleski JI Zemlja publikovanja: Republika Srbija ZP Uže geografsko područje: Zrenjanin, Vojvodina UGP Godina: 2019. GO Izdavač: Autorski reprint IZ Mesto i adresa: Tehnički fakultet “Mihajlo Pupin”, Đure MS Đakovića bb, Zrenjanin Fizički opis rada: Broj poglavlja 6/ Strana 70/ Slika FO 30/ Listinga 2/ Naučna oblast: Informacione tehnologije – master OB Naučna disciplina: Distribuirani informacioni sistemi ND Predmetna odrednica, ključne reči: Biblioteka Tehničkog fakulteta PO „Mihajlo Pupin“ Zrenjanin UDK Čuva se: ČU Važna napomena: VN Izvod: U ovom radu teorijski je prikazan način rada IZ online repozitorijuma koda. U odeljku stručnog istraživanja prikazane su opšte osobine repozitorijuma koda, načini instalacije, zašto se koriste, kao i definicije srodnih termina koji se koriste. U praktičnom delu rada prikazani su konkretni primeri rada određenih repozitoijuma koda, način upotrebe i njihove glavne karakteristike. Posebno je analiziran aspekt integracije alata za razvoj softvera sa on-line repozitorijumima koda.
    [Show full text]