Chimera (22.07.10). Системы Контроля Версий Revision Control Контроль версий – процесс управления множественными версиями некоторого документа или документов.

Презентация:



Advertisements
Похожие презентации
© 2005 Cisco Systems, Inc. All rights reserved.INTRO v Managing Your Network Environment Managing Cisco Devices.
Advertisements

Carousel from flshow.netflshow.net by Saverio CaminitiSaverio Caminiti.
© 2006 Cisco Systems, Inc. All rights reserved. SND v Configuring a Cisco IOS Firewall Configuring a Cisco IOS Firewall with the Cisco SDM Wizard.
Copyright 2003 CCNA 3 Chapter 7 Switch Configuration By Your Name.
Using Dreamweaver MX Slide 1 Window menu Manage Sites… Window menu Manage Sites… 2 2 Open Dreamweaver 1 1 Set up a website folder (1). Click New…
Get start with Docker & DevOps Sr.Analyst Oksana Dudnik.
Занятие 2 Инструменты Роман Здебский Тренинг Введение в разработку приложений на Windows Presentation.
© 2006 Avaya Inc. All rights reserved. The IP Office Manager Tool.
© 2006 Cisco Systems, Inc. All rights reserved. CIPT1 v Administration of Cisco Unified CallManager Release 5.0 Implementing Disaster Recovery.
© 2006 Cisco Systems, Inc. All rights reserved.ISCW v IPsec VPNs Implementing the Cisco VPN Client.
Overview of the Paysonnel CE. Overview Paysonnel CE Go to URL- 1 Click [Login to Paysonnel CE] 2 How to Log-in to Paysonnel CE 1 2.
REFERENCE ELEMENTS 64. If your REFERENCE ELEMENTS toolbar is not in view and not hidden, you can retrieve it from the toolbars menu seen here. 65.
© 2005 Cisco Systems, Inc. All rights reserved.INTRO v Operating and Configuring Cisco IOS Devices Starting a Switch.
DRAFTING TECHNIQUES I 136. Here is a basic shape. From here, we will do some advanced drafting once we put this shape on a sheet as a drawing. Select.
Work Wonders Пашковская Т.А. Лицей I spend about half of my time in my office, and the other half in court. I don`t have customers. I have clients.
Linux Daemons. Agenda What is a daemon What is a daemon What Is It Going To Do? What Is It Going To Do? How much interaction How much interaction Basic.
© 2004, Cisco Systems, Inc. All rights reserved. CSIDS Lesson 12 Cisco Intrusion Detection System Maintenance.
© 2005, Cisco Systems, Inc. All rights reserved. IPS v Lesson 4 Using IPS Device Manager.
Be The Most Productive Developer You Can Be! Kristen Howell OpenEdge Product Manager Matt Baker Principal Software Engineer Session 108.
© 2005 Cisco Systems, Inc. All rights reserved.INTRO v Module Summary The Cisco Discovery Protocol is an information-gathering tool used by network.
Транксрипт:

Chimera ( )

Системы Контроля Версий

Revision Control Контроль версий – процесс управления множественными версиями некоторого документа или документов. Множество имен: – Revision Control (RCS) – Software Configuration Management (SCM) – Source Code Management – Source Code Control or Source Control – Version Control (VCS)

Так или иначе, это используют все Но у многих это вызывает головную боль: – MyProject1 – MyProject.backup – MyProject.old – MyProject.oldest – … Используйте адекватные задаче инструменты!

Плюсы Отслеживает все изменения в проекте. Для каждого изменения известно: – Кто его сделал? – Зачем? – Когда? – Что именно было изменено? Упрощает совместную разработку.

Плюсы (продолжение) Помогает справиться с ошибками: – Всегда можно вернуться назад во времени – Поможет эффективно идентифицировать момент, когда была внесена ошибка Помогает одновременно работать над несколькими версиями проекта.

Базовые понятия Repository Working copy Revision (changeset) Tag Trunk (default branch) Branch Check in (commit) Check out (update)

Что такое репозиторий?

VCS vs. DVCS VCS – CVS – Subversion – Perforce DVCS – Git – Mercurial – Bazaar

Mercurial

Quick start! Cloning existing project $ hg clone mercurial-repo … $ cd mercurial-repo $ hg parents changeset: 6907:6dcbe191a9b5 tag: tip user: Matt Mackall date: Mon Aug 18 16:50: summary: Fix up tests

Quick start! Setting up new project $ cd project/ $ hg init# creates.hg … # edit.hgignore $ hg status # show all non-ignored files $ hg add # add those 'unknown' files $ hg commit # commit all changes $ hg parents # see the current revision

Quick start! Sharing the changes $ hg pull # update an existing repo $ hg serve -n My repo# export your current repo via # HTTP with browsable # interface on port 8000 $ hg push# push changes to a remote repo

Quick start! Getting help and info $ hg version $ hg help # list subcommands $ hg help init # get help on init subcommand $ hg help -v init # get even more info $ hg log # view revision history $ hg parents # view working dir parents $ hg status # view working dir file status

Репозиторий, номера ревизий

Что почитать дальше? – –

Mercurial Tutorial

Alternative: TortoiseHG

Step 1. Installation Install mercurial – $ apt-get install mercurial – $ emerge mercurial And confirm the installation – $ hg version – version should be above 1.1

Step 2. Generating auth keys Run: – $ ssh-keygen – this will generate two files: ~/.ssh/id_rsa - your private key ~/.ssh/id_rsa.pub - your public key Share generated public keys with me – for example, place the key into /tmp/ / on parallels.nsu.ru server

Step 3. Customize Mercurial I will add your public keys as trusted ones on server with repository – this will take several moments… Meanwhile please setup your ~/.hgrc # This is a Mercurial configuration file. [ui] username = Firstname Lastname

Step 4. Clone the repo Its easy: – $ hg clone work Lets see whats inside: – $ cd work/ – $ ls -al – $ hg log – $ hg log -v -r 3 # -r 1 -r 4 # -r 2:3 # -r 82e5 # – $ hg parents

Step 5. Fix the bug (obsolete ) Try to compile the project – $ make Fix the bug by editing hello.c Commit changes – $ hg status # review your changes – $ hg commit # dont forget sensible comment! – $ hg tip# heres our commit

Step 6. Put changes back to server First, receive possible changes from server! – $ hg incoming # see what will be pulled – $ hg pull Update / resolve conflicts / do nothing – $ hg update # if working copy has no uncommited # changes – $ hg heads# otherwise you end up with 2+ heads – $ hg merge# merge them, then commit! Push merged changes back to server – $ hg push

Hm…