Share to: share facebook share twitter share wa share telegram print page

Controllo versione

Esempio di grafo della cronologia di un progetto sotto controllo di versione. Il trunk è verde, i branch sono gialli. Tale grafo non è un albero e questo è dovuto alla presenza dei merge (frecce rosse).

Il controllo versione (in inglese version control), in informatica, è la gestione di versioni multiple di un insieme di informazioni: gli strumenti software per il controllo versione sono ritenuti molto spesso necessari per la maggior parte dei progetti di sviluppo software o documentali gestiti da un team collaborativo di sviluppo o redazione.[1]

Viene dunque usato prevalentemente nello sviluppo di progetti ingegneristici o informatici per gestire la continua evoluzione dei documenti digitali come i disegni tecnici, il codice sorgente del software, la documentazione testuale e altre informazioni importanti su cui può lavorare una squadra di persone (la cronologia di Wikipedia è un esempio a tutti gli effetti di sistema di controllo versione).

Descrizione

Caratteristiche

Il controllo versione ingegneristico si è sviluppato dai processi formali basati sui disegni cartacei. Le modifiche a questi documenti sono identificate incrementando un numero o un codice associato a essi, denominato "numero di versione", "etichetta di versione", o semplicemente "versione", e sono etichettate con il nome della persona che ha apportato la modifica. Una semplice forma di controllo versione, per esempio, assegna il numero 1 alla prima versione di un progetto. Quando viene apportata la prima modifica, il numero identificativo di versione passa a 2 e così via.

In questo controllo era implicita la possibilità di tornare a uno stato precedente del progetto, nei casi in cui si raggiungeva un vicolo cieco ingegneristico. Parimenti, nell'ingegneria del software, il controllo versione è qualunque pratica che tiene traccia e permette di controllare i cambiamenti al codice sorgente prodotti da ciascun sviluppatore, condividendone allo stesso tempo la versione più aggiornata o modificata da ciascuno mostrando dunque in tempi brevi lo stato di avanzamento del lavoro di sviluppo. Gli sviluppatori software talvolta usano il controllo versione software anche per i file di documentazione e di configurazione, oltre che per il codice sorgente. In teoria, il controllo versione può essere applicato a qualunque tipo di registrazione di informazioni. Tuttavia, in pratica le tecniche e gli strumenti più sofisticati per il controllo versione sono stati usati raramente al di fuori degli ambienti di sviluppo software (sebbene potrebbero effettivamente essere utili in molte altre aree). Comunque, si sta cominciando a usarli per tener traccia delle modifiche a file di CAD, soppiantando la gestione "manuale" delle versioni.

Man mano che il software viene sviluppato e dispiegato, è sempre più probabile che versioni distinte dello stesso software siano dispiegate in posti diversi, e che gli sviluppatori del software lavorino privatamente allo sviluppo di aggiornamenti. I bug e altre questioni riguardanti il software sono spesso presenti solamente in certe versioni (a causa del fatto che man mano che il software evolve alcuni problemi vengono corretti e altri ne vengono rilevati). Pertanto, allo scopo di individuare e correggere i bug, è di importanza vitale per il programmatore poter recuperare e mandare in esecuzione diverse versioni del software per determinare in quali versioni il problema si è verificato. Può anche essere necessario sviluppare parallelamente due versioni del software (quando, per esempio, in una versione sono stati corretti dei bug, ma non ha nuove caratteristiche, mentre nell'altra versione vengono sviluppate nuove caratteristiche).

Al livello più semplice, gli sviluppatori possono conservare una copia per ogni diversa versione del software, e identificarle appropriatamente. Questo approccio è stato usato in molti grandi progetti software. Sebbene questo metodo possa funzionare, è inefficiente (dato che verranno conservate molte copie quasi identiche del software), richiede molta disciplina da parte degli sviluppatori, e conduce spesso a errori. Conseguentemente, sono stati sviluppati dei sistemi per automatizzare (in parte o in toto) il procedimento di controllo versione.

Nella maggior parte dei progetti di sviluppo software, più sviluppatori lavorano in parallelo sullo stesso software. Se due sviluppatori tentano di modificare lo stesso file contemporaneamente, in assenza di un metodo di gestione degli accessi, essi possono facilmente sovrascrivere o perdere le modifiche effettuate contestualmente. La maggior parte dei sistemi di controllo versione possono risolvere questo problema in due diversi modi. Questo problema riguarda solamente i sistemi di controllo versione centralizzati, poiché i sistemi distribuiti permettono intrinsecamente più modifiche simultanee.

I pregi e i difetti del blocco dei file sono in discussione. Tale operazione può fornire una certa protezione da difficili conflitti di merge quando un utente sta facendo delle modifiche radicali a molte sezioni di un grande file (o di un gruppo di file). Ma se i file sono lasciati bloccati troppo a lungo, gli altri sviluppatori possono essere tentati di scavalcare il software di controllo versione e di modificare comunque i file in locale, e ciò può condurre a problemi più seri.

Alcuni sistemi tentano di gestire i profili di chi ha il permesso di apportare modifiche; per esempio, richiedendo che le modifiche a un file siano approvate da un recensore designato prima di essere aggiunte. La maggior parte dei sistemi di controllo versione usano la compressione delta, che conserva solamente le differenze fra le versioni successive dei file. Questo consente un immagazzinamento efficiente di più versioni di un file, purché, come solitamente succede, le modifiche tra una versione e la successiva riguardino solamente una piccola parte del testo.

Programmi e sistemi utilizzati

Alcuni sistemi prevengono i problemi dovuti ad accessi simultanei, semplicemente bloccando (lock) i file, cosicché solamente uno sviluppatore per volta ha diritto di accesso in scrittura alla copia di quel file contenuta nel repository centrale.

Tradizionalmente, i sistemi di controllo versione hanno usato un modello centralizzato, in cui tutte le funzioni di controllo versione sono eseguite da un server condiviso. Alcuni anni fa, certi sistemi come TeamWare, BitKeeper e GNU arch hanno cominciato a usare un modello distribuito, in cui ogni sviluppatore lavora direttamente con il suo repository locale, e le modifiche sono condivise tra i repository in un passo separato. Questa modalità di operare permette di lavorare senza una connessione di rete, e consente anche agli sviluppatori di accedere alle funzioni di controllo versione senza aver bisogno di permessi concessi da un'autorità centrale. Altri, come CVS o Subversion (SVN), permettono a più sviluppatori di modificare lo stesso file nello stesso tempo, e forniscono degli strumenti per combinare le modifiche in seguito (merge). In quest'ultimo tipo, può esistere un'operazione di blocco facoltativa.

Alcuni degli strumenti di controllo versione più avanzati offrono molte altre funzionalità, consentendo una più profonda integrazione con altri strumenti e procedimenti di ingegneria del software. Spesso sono disponibili dei plug-in per IDE come Eclipse e Visual Studio.

Glossario

Repository
il repository è l'archivio dove i file sono memorizzati, spesso su file server. Talvolta è chiamato anche depot (ad esempio dal software Perforce).
Check-in
un check-in (o ci o, più raramente, install, submit) si effettua quando si copiano le modifiche fatte su file locali nella directory del repository (il software di controllo versione controlla quali file sono stati modificati dall'ultima sincronizzazione). Il check-in è l'inserimento del file nonché lo stato corrispondente.
Modifica
una modifica (change) rappresenta una specifica modifica a un documento sottoposto al controllo di versione. La granularità delle modifiche considerate come cambiamenti varia tra i sistemi di controllo versione.
Change List
su molti sistemi di controllo versione con commit di modifiche multiple atomiche, una changelist identifica un insieme di changes fatti in un singolo commit.
Check-Out
un check-out (o checkout o co) effettua una copia di lavoro dal repository (può essere visto come l'operazione inversa dell'importazione). Il check-out è il prelievo del file nonché lo stato corrispondente.
Update
un update (o sync) copia le modifiche fatte sul repository nella propria directory di lavoro (può essere visto come l'operazione inversa del commit).
Merge / Integrazione
un merge o integrazione unisce modifiche concorrenti in una revisione unificata.
Revisione
una revisione o versione è una versione in una catena di modifiche.
Import
il termine import è usato per descrivere la copiatura dell'intero albero di directory locale sul repository.
Export
un export è simile a un check-out ma crea un albero di directory vuoto senza metadati di controllo versione (spesso è usato precedentemente alla pubblicazione dei contenuti).
Conflitto
un conflitto si presenta quando diversi soggetti fanno modifiche in contemporanea allo stesso documento non vedendo l'uno le modifiche che sta apportando l'altro e che potrebbero sovrapporsi. Non essendo il software abbastanza intelligente da decidere quale tra le modifiche è quella 'corretta', si richiede a un utente di risolvere il conflitto.
Risolvere
l'intervento di un utente per la risoluzione di un conflitto tra modifiche differenti di uno stesso documento.
Vaulting
complesso di azioni che regola l'inserimento (check-in) e il prelievo (check-out), da parte di un client, del contenuto documentale di un'unità d'informazione (oggetto) controllata dall'application server[2]. Il vaulting logico si differenzia dal vaulting fisico che è lo spostamento dei byte che costituiscono il file relativo all'oggetto. Lo spostamento avviene nel vault (zona di memorizzazione) controllato dal file server.

Note

  1. ^ 1.1 Per Iniziare - Il Controllo di Versione, su git-scm.com. URL consultato il 17 agosto 2022.
  2. ^ L'application server gestisce la logica del sistema e le interazioni con il file server.

Voci correlate

Altri progetti

Controllo di autoritàLCCN (ENsh2014000307 · GND (DE4202033-5 · J9U (ENHE987007579378305171
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica

Read other articles:

Wayne Rainey Född23 oktober 1960 (63 år)Downey, USAMedborgare iUSAUtbildad vidSanta Fe High School SysselsättningMotorcykelförareUtmärkelserFIM Gold Medal for Motorcycle Merit (1993)[1]Motorcycle Hall of Fame (1999)MotoGP Hall of Fame (2000)Motorsports Hall of Fame of America (2008)Redigera Wikidata Wayne Rainey, född 23 oktober 1960 i Downey i Kalifornien, är en amerikansk motorcyklist. Rainey var en av de mest framgångsrika amerikanska förarna i slutet på 1980-talet...

 

2023 action-adventure video game 2023 video gameStar Wars Jedi: SurvivorDeveloper(s)Respawn EntertainmentPublisher(s)Electronic ArtsDirector(s)Stig AsmussenProducer(s)Paul HatfieldDesigner(s)Jason de HerasJeff MagersProgrammer(s)Jon CarrArtist(s)Chris SuttonNate StephensWriter(s)Aaron ContrerasDanny HomanPete StewartCheyenne MorrinComposer(s)Stephen BartonGordy HaabEngineUnreal Engine 4Platform(s)PlayStation 5WindowsXbox Series X/SPlayStation 4Xbox OneReleasePS5, Windows, Xbox Series X/SApril...

 

تشابك عصبيمعلومات عامةصنف فرعي من موصل خلوي[1] أحداث مهمة كامن الفعل المكتشف أو المخترع تشارلز شرينغتون زمن الاكتشاف أو الاختراع 1897 تُستخدَم بواسطة synaptic transmission (en) لديه جزء أو أجزاء synaptic cleft (en) نهاية محوريةpostsynapse (en) تعديل - تعديل مصدري - تعديل ويكي بيانات بنية تشابك كيميائ

Borja Iglesias Borja Iglesias en 2019Datos personalesNombre completo Borja Iglesias QuintasApodo(s) El panda[1]​Nacimiento Santiago de Compostela, Galicia17 de enero de 1993 (30 años)Nacionalidad(es) EspañolaAltura 1,87 m (6′ 2″)Peso 85 kg (187 lb)Carrera deportivaDeporte FútbolClub profesionalDebut deportivo 2012(Villarreal C. F. C)Club Real Betis BalompiéLiga Primera División de EspañaPosición DelanteroDorsal(es) 9Goles en clubes 171Selección nacionalSe...

 

This article is part of a series onPolitics of Greece Constitution Constitutional history Human rights Executive Head of state President of the Republic (list): Katerina Sakellaropoulou Presidential Departments Government Prime Minister (list): Kyriakos Mitsotakis Cabinet: Kyr. Mitsotakis II Legislature Speaker: Konstantinos Tasoulas Presidium Conference of Presidents Parliamentary committees Constituencies Apportionment Judiciary Supreme courts Special Highest Court Court of Cassation Counci...

 

اضغط هنا للاطلاع على كيفية قراءة التصنيف شُنْدُل هازجة جرادة، Locustella المرتبة التصنيفية جنس[1][2]  التصنيف العلمي المملكة: حيوان الشعبة: حبليات الطائفة: طائر الرتبة: عصفوريات الجنس: Locustella الاسم العلمي Locustella[1][3]  يوهان جاكوب كاوب  ، 1829    تعديل مص�...

Yūgumo-class destroyer For other ships with the same name, see Japanese destroyer Yūgumo. Right elevation and plan of a Yūgumo-class destroyer History Empire of Japan NameYūgumo BuilderMaizuru Naval Arsenal Laid down12 June 1940 Launched16 March 1941 Completed5 December 1941 Commissioned5 December 1941, 10th Destroyer Division Stricken1 December 1943 FateSunk 6 October 1943 General characteristics Class and typeYūgumo-class destroyer Displacement 2,077 long tons (2,110 t) standard 2...

 

Resolusi 739Dewan Keamanan PBBLokasi MoldovaTanggal5 Februari 1992Sidang no.3.047KodeS/RES/739 (Dokumen)TopikPenambahan anggota baru PBB: MoldovaHasilDiadopsiKomposisi Dewan KeamananAnggota tetap Tiongkok Prancis Rusia Britania Raya Amerika SerikatAnggota tidak tetap Austria Belgia Tanjung Verde Ekuador Hungaria India Jepang Maroko Venezuela Zimbabwe Resolusi Dewan Keamanan Perserikatan Bangsa-Bangsa 739, dia...

 

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (ديسمبر 2020) رائحة الفم أو التنفس الخلويأو تنفس الهاليد العضوي هو استخدام مركبات هالوجينية ذات أطراف إلكترونية في دورة التنفس اللاهوائي . [1] [2] [3] يمكن أن يل�...

Ah Meng Ah Meng (18 Juni 1960 – 8 Februari 2008) (Hanzi sederhana: 阿明) adalah orang utan Sumatra betina dan ikon pariwisata Singapura. Ia dibawa dari Indonesia dan disimpan secara ilegal sebelum ditemukan tahun 1971. Ketika berusia sebelas tahun, ia dibawa ke Kebun Binatang Singapura. Ah Meng meninggal dunia pada tanggal 8 Februari 2008 karena usianya sudah tua. Ia meninggal pada usia 48 tahun. Sekitar 4000 pengunjung datang ke Kebun Binatang Singapura pada hari tersebut untuk menyataka...

 

2000 video game This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article is in list format but may read better as prose. You can help by converting this article, if appropriate. Editing help is available. (December 2011) This article's lead section may be too short to adequately summarize the key points. Please consider expanding the lead to provide an accessible overview of all impor...

 

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (نوفمبر 2023) هيئة الموسوعة العربية، هي هيئة عامة سورية ذات طابع علمي ثقافي، تأسست عام 1981، ومركزها مدينة دمشق مرتبطة بوزير الثقافة. تعتمد الموسوعة على مبدأ التأليف منهجا...

Comic book series This article is about the comic book Peter Parker, The Spectacular Spider-Man. For the 1990s series, see Peter Parker: Spider-Man. For the animated television series, see The Spectacular Spider-Man (TV series). The Spectacular Spider-ManCover to The Spectacular Spider-Man magazine #1 (July 1968),painted art by Harry RosenbaumPublication informationPublisherMarvel ComicsScheduleMonthlyFormatStandardGenreSuperheroPublication date List magazine: July 1968 – November 1968 (vol...

 

زيد بن الحسين   معلومات شخصية الميلاد 28 فبراير 1898  تركيا  الوفاة 18 أكتوبر 1970 (72 سنة)   باريس  مواطنة الدولة العثمانية  الزوجة فخر النساء زيد  الأولاد رعد بن زيد  الأب الحسين بن علي  أقرباء ماجدة رعد بن زيدمرعد بن رعد بن زيدفراس بن رعد بن زيدزيد بن رعد بن ز�...

 

Далі польоту стрілиТип мінісеріалЖанр драмаТривалість 2 год 31 хвКомпанія УкртелефільмСценарист Алла Тютюнник, за участю Василя ВітраРежисер Василь Вітер;2-й режисер: Сергій ТуряницяОператор Олег АндрусенкоМонтаж Олена Любченко, Вероніка КулаковаХудожник Ігор БєлякУ �...

Neighborhood of Brooklyn in New York CityBrownsvilleNeighborhood of BrooklynThe Samuel J. Tilden Houses, one of many NYCHA public housing developments located in BrownsvilleLocation in New York CityCoordinates: 40°39′43″N 73°54′32″W / 40.662°N 73.909°W / 40.662; -73.909Country United StatesState New YorkCityNew York CityBoroughBrooklynCommunity DistrictBrooklyn 16[1]Parceled1858European settlement1861Founded byWilliam SuydamNamed forCharle...

 

  الجائزة الكبرى 2012 تفاصيل السباق السباق الـ 6 من أصل 18 سباقا ضمنسباق الجائزة الكبرى للدراجات النارية موسم 2012 التاريخ 17 يونيو 2012 المكان حلبة سلفرستون البلد المملكة المتحدة  المضمار 5.900 كيلومتر(3.666 ميل) موتو جي بي أول المنطلقين المتسابق ألفارو باوتيستا هوندا الوقت ...

 

Zapis nutowy fragmentu Etiudy Fragment Etiudy Etiuda a-moll op. 10 nr 2 – druga z Etiud Fryderyka Chopina, znana jako Powiew wiatru. Została skomponowana na fortepian. Zadedykowana została Franzowi Lisztowi (à son ami Franz Liszt). Linki zewnętrzne Partytura. mutopiaproject.org. [zarchiwizowane z tego adresu (2007-06-10)]. pdeDzieła Fryderyka ChopinaBallady g-moll op. 23 F-dur op. 38 As-dur op. 47 f-moll op. 52 Etiudyop. 10 C-dur nr 1 a-moll nr 2 E-dur nr 3 cis-moll nr 4 Ge...

名古屋高速道路 名古屋高速4号東海線 愛知県道456号高速名古屋新宝線 地図 路線延長 12.0 km 開通年 2010年 - 2013年 接続する主な道路(記法) 都心環状線E1A 伊勢湾岸自動車道 ■テンプレート(■ノート ■使い方) ■PJ道路 名古屋高速4号東海線(なごやこうそく4ごうとうかいせん)は、愛知県名古屋市中川区の山王ジャンクション(JCT)から愛知県東海市の東海JCTへ至る名�...

 

16°29′35″N 42°46′10″E / 16.49306°N 42.76944°E / 16.49306; 42.76944 السهي تقسيم إداري البلد  السعودية المنطقة منطقة جازان المسؤولون أمير المنطقة محمد بن ناصر بن عبدالعزيز المحافظ خالد بن عبدالعزيز الجريوي رئيس المركز مقعد بن محمد السبيعي خصائص جغرافية إحداثيات 16°30′06″N 42°45′19″E&#x...

 
Kembali kehalaman sebelumnya