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:

9-й окремий стрілецький батальйон Нарукавний знак батальйонуЗасновано 2015Країна  УкраїнаНалежність Тимчасові Війська ТрОВид Сухопутні військаТип  Механізовані військаРоль моторизована піхотаГарнізон/Штаб  Кіровоградська областьШтандарт Червоний та чорнийВій

 

Запрос «Шахтёр (футбольный клуб, Александрия)» перенаправляется сюда. На эту тему нужно создать отдельную статью. У этого термина существуют и другие значения, см. Александрия (значения). Александрия Полноеназвание Футбольный клуб «Александрия» Прозвища «желто-чёрные» ...

 

American conductor Marin AlsopAlsop, on the right, at a charity function in Baltimore in 2016Background informationBorn (1956-10-16) October 16, 1956 (age 67)New York City, New York, U.S.GenresClassicalOccupation(s)ConductorInstrument(s)ViolinMusical artist Marin Alsop (/ˈmærɪn ˈɔːlsəp/;[1][2] born October 16, 1956) is an American conductor, the first woman to win the Koussevitzky Prize for conducting and the first conductor to be awarded a MacArthur Fellowship. Sh...

この名前は、スペイン語圏の人名慣習に従っています。第一姓(父方の姓)はプホルス、第二姓(母方の姓)はアルカンタラです。 この記事の項目名には以下のような表記揺れがあります。 アルバート・プーホールズ アルバート・プホルスAlbert Pujols ロサンゼルス・エンゼルスでの現役時代(2019年5月11日)基本情報国籍 ドミニカ共和国 アメリカ合衆国(二重国籍) ...

 

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (فبراير 2019) كيث شميت معلومات شخصية الميلاد 19 ديسمبر 1921  هوبارت  الوفاة 4 أكتوبر 2017 (95 سنة)   هوبارت  الجنسية أستراليا  الحياة العملية الفرق فريق تسمانيا للكر...

 

متحف غوتنبرغالتسميةنسبة الاسم إلى يوهان غوتنبرغ معلومات عامةنوع المبنى متحف العنوان Liebfrauenplatz 5 (بالألمانية) المنطقة الإدارية ماينتس البلد  ألمانيا أبرز الأحداثالافتتاح الرسمي 23 يونيو 1962 معلومات أخرىموقع الويب gutenberg-museum.de الإحداثيات 49°59′59″N 8°16′31″E / 49.9997°N 8.2753...

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (أبريل 2019) سيفيرنا بارك معلومات شخصية الميلاد سنة 1958 (العمر 64–65 سنة)  مواطنة الولايات المتحدة  الحياة العملية المهنة روائية،  وكاتبة خيال علمي  الجوائز جائز

 

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Januari 2023. Etalase Geopark Gunungsewu adalah sebuah museum khusus yang berada di dalam Kawasan Wisata Pantai Pancerdoor, Kabupaten Pacitan, Provinsi Jawa Timur, Indonesia. Museum ini memamerkan benda-benda geologi dari kawasan Gunung Sewu. Peresmiannya diadakan p...

 

The former Carlos'n Charlie's in Oranjestad, Aruba A seafood dish at Mul Yam restaurant, located at Tel Aviv Port, Tel Aviv, Israel Stuffed blue crab shells known as Casquinha de Siri being enjoyed in Tropicana Restaurant at Rio de Janeiro City A bobó de camarão dish at a Rio de Janeiro restaurant The following is a list of notable seafood restaurants. A seafood restaurant typically specializes in seafood cuisine and seafood dishes, such as fish and shellfish. Seafood restaurants This is a ...

Indian musical television series Mouna RaagamGenreMusicalDramaFamilyWritten byPriya ThampiDirected byThai SelvamManoj KumarStarringKritika Khelge Sherin Farhana Rajeev Parameshwar Chippy Renjith Shamitha ShreekumarTheme music composerM. Jayachandran (Title Song) Harinarayanan (lyrics) Sananth George (Background Score)Opening themeOdum Meenum KetkumPalani Bharathi (Lyrics)Country of originIndiaOriginal languageTamilNo. of episodes1380ProductionProducerChippy RenjithProduction locationsPonmudi,...

 

Novelist, short story writer (born 1937) Gail GodwinBornGail Kathleen Godwin (1937-06-18) June 18, 1937 (age 86)Birmingham, Alabama, U.S.OccupationAuthorEducation Bachelor's in Journalism, University of North Carolina M.A. Ph.D., University of Iowa GenreFictionautobiographyNotable works A Mother and Two Daughters (1982) A Southern Family (1987) Notable awardsThree-time National Book Award nomineePartnerRobert StarerWebsitewww.gailgodwin.com Gail Godwin (born June 18, 1937) is an American...

 

福岡県立香椎高等学校 北緯33度39分26.5秒 東経130度26分47.8秒 / 北緯33.657361度 東経130.446611度 / 33.657361; 130.446611座標: 北緯33度39分26.5秒 東経130度26分47.8秒 / 北緯33.657361度 東経130.446611度 / 33.657361; 130.446611過去の名称 糟屋郡立粕屋実業女学校福岡県立粕屋高等女学校福岡県立香椎高等女学校福岡県立香椎女子高等学校国公私立の別 公立学校...

Chinese TV series or program Young BloodGenreHistorical Action MysteryWritten byWang JuanDirected byYi ZhengStarringZhang XinchengZhou YutongWang YoushuoZheng WeiBruce HungSu XiaotongCountry of originChinaOriginal languageMandarinNo. of episodes42ProductionProducersWang ShuoZhou EnProduction locationHengdianProduction companiesMango EntertainmentiQiyiSEG华联映画Original releaseNetworkHunan TVReleaseJune 3 (2019-Jun-03) –July 17, 2019 (2019-Jul-17) Young Blood (Chines...

 

Aspect ratio with a width of 16 units and height of 9 units 16x9 redirects here. For the TV series, see 16x9 (TV series). A 16:9 rectangle in which rectangles visualize the ratio. The groupings are not square. A television set with the 16:9 image ratio. 16:9 (1.78:1) is a widescreen aspect ratio with a width of 16 units and height of 9 units. Once seen as exotic,[1] since 2009, it has become the most common aspect ratio for televisions and computer monitors, and is also the internatio...

 

Para prajurit UNEF dari Tentara Rakyat Yugoslavia di Sinai, Januari 1957 Pasukan Darurat Perserikatan Bangsa-Bangsa atau United Nations Emergency Force (UNEF) dibentuk oleh Majelis Umum Perserikatan Bangsa-bangsa untuk mengakhiri Krisis Suez dengan resolusi 1001 (ES-I) pada 7 November 1956. Pasukan tersebut dikembangkan dalam jumlah besar sebagai hasil upaya oleh Sekjen PBB Dag Hammarskjöld serta proposal dan upaya dari Menteri Urusan Luar Negeri Kanada Lester B. Pearson, yang kemudian memen...

Ghana ArmyFounded29 July 1959(64 years ago)Country GhanaTypeArmyRoleGround WarfarePart ofGhana Armed ForcesColorsScarlet, Black and Dartmouth Green    CommandersChief of the Defence StaffVice Admiral Seth AmoamaChief of the Army StaffMajor General Thomas Oppong PeprahMilitary unit The Ghana Army is the principal land warfare force of Ghana. In 1959, two years after the Gold Coast became independent from the British Empire, the Gold Coast Regiment was withdrawn from th...

 

ABC affiliate in Alexandria, Louisiana KLAX-TVAlexandria–Pineville, LouisianaUnited StatesCityAlexandria, LouisianaChannelsDigital: 31 (UHF)Virtual: 31BrandingKLAX ABC 31; ABC 31 NewsProgrammingAffiliations31.1: ABC31.2: MeTV31.3: Ion TelevisionOwnershipOwnerImagicomm Communications(Imagicomm Alexandria, LLC)Sister stationsWABG, WXVT, WNBD, WHBQHistoryFounded1979 (1979)First air dateMarch 3, 1983 (40 years ago) (1983-03-03)Former channel number(s)Analog: 31 (UHF, 1983–2...

 

Historic house in New Jersey, United States United States historic placeJohn Holmes HouseU.S. National Register of Historic PlacesNew Jersey Register of Historic Places John Holmes House in 2010.Show map of Cape May County, New JerseyShow map of New JerseyShow map of the United StatesLocation504 N. U.S. 9, Cape May Court House, Middle Township, New JerseyCoordinates39°5′46″N 74°48′48″W / 39.09611°N 74.81333°W / 39.09611; -74.81333Area2.5 acres (1.0 ha)...

静岡県道151号須走小山線と前方の富士山、駿東郡小山町用沢にて 静岡県道151号須走小山線(しずおかけんどう151ごう すばしりおやません)は、静岡県駿東郡小山町を貫く一般県道。 静岡県道150号足柄停車場富士公園線と並行して、小山町の須走地区と小山地区を結ぶ。片側1車線。 通過する自治体 静岡県 駿東郡小山町 - 御殿場市 接続路線 静岡県道150号足柄停車場富...

 

Dësen Artikel aus dem Film- an Televisiounsberäich ass eréischt just eng Skizz. Wann Dir méi iwwer dëst Theema wësst, sidd Dir häerzlech invitéiert, aus dëse puer Sätz e richtegen Artikel ze schreiwen. Wann Dir beim Schreiwen Hëllef braucht, da luusst bis an d'FAQ eran. The Day the Earth Stood Still FilmProduktiounsland USAPremière 18. September 1951Dauer 92 minFaarf Schwaarz-WäissFormat 1,37:1Originalsprooch EngleschEkippRegie Robert WiseDréibuch Edmund H. NorthFotografie Leo ...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!