Popravki 1. del (Sašo)
This commit is contained in:
parent
ae940094c1
commit
a455b4512e
2 changed files with 37 additions and 32 deletions
|
|
@ -34,8 +34,8 @@
|
||||||
tudi pri pisanju besedil v \LaTeX-u. Poleg tega, da Git hrani
|
tudi pri pisanju besedil v \LaTeX-u. Poleg tega, da Git hrani
|
||||||
zgodovino sprememb, tudi olajša združevanje sprememb, ko več ljudi hkrati
|
zgodovino sprememb, tudi olajša združevanje sprememb, ko več ljudi hkrati
|
||||||
ureja iste datoteke. Ogledali si bomo, kako Git deluje. Opisali bomo,
|
ureja iste datoteke. Ogledali si bomo, kako Git deluje. Opisali bomo,
|
||||||
kako Git uporabi \emph{zgoščevalne funkcije}, \emph{Merklejeva drevesa}
|
kako Git uporabi zgoščevalne funkcije, Merklejeva drevesa
|
||||||
in \emph{usmerjene aciklične grafe}, da shrani zgodovino različic in
|
in usmerjene aciklične grafe, da shrani zgodovino različic in
|
||||||
olajša hkratno urejanje vsebine. Matematični model, ki ga Git uporablja,
|
olajša hkratno urejanje vsebine. Matematični model, ki ga Git uporablja,
|
||||||
je v resnici zelo preprost in njegovo razumevanje nas lahko reši
|
je v resnici zelo preprost in njegovo razumevanje nas lahko reši
|
||||||
marsikatere zagate, ki nastane med njegovo uporabo.
|
marsikatere zagate, ki nastane med njegovo uporabo.
|
||||||
|
|
@ -47,8 +47,8 @@
|
||||||
It is mainly used for source code management in software development. However, many of us
|
It is mainly used for source code management in software development. However, many of us
|
||||||
also use it for writing texts in \LaTeX. Besides tracking history, Git facilitates
|
also use it for writing texts in \LaTeX. Besides tracking history, Git facilitates
|
||||||
merging changes when multiple people edit the same files simultaneously. We will look at
|
merging changes when multiple people edit the same files simultaneously. We will look at
|
||||||
how Git works. We will describe how Git uses \emph{hash functions}, \emph{Merkle trees},
|
how Git works. We will describe how Git uses hash functions, Merkle trees,
|
||||||
and \emph{directed acyclic graphs} to store version history and facilitate concurrent
|
and directed acyclic graphs to store version history and facilitate concurrent
|
||||||
content editing. The mathematical model used by Git is actually very simple, and
|
content editing. The mathematical model used by Git is actually very simple, and
|
||||||
understanding it can save us many headaches during its use.
|
understanding it can save us many headaches during its use.
|
||||||
\end{abstract}
|
\end{abstract}
|
||||||
|
|
@ -63,28 +63,28 @@
|
||||||
|
|
||||||
\section{Kaj je Git?}
|
\section{Kaj je Git?}
|
||||||
|
|
||||||
\href{https://git-scm.com/}{Git} je kot \emph{časovni stroj} za
|
\href{https://git-scm.com/}{Git}\cite{git_software} je kot časovni stroj za
|
||||||
datoteke. Uporabniku omogoča, da vidi \emph{pretekle različice}
|
datoteke. Uporabniku omogoča, da vidi pretekle različice
|
||||||
datotek, spreminja datoteke, brez skrbi, da bi kaj pokvaril in
|
datotek, spreminja datoteke, brez skrbi, da bi kaj pokvaril in
|
||||||
jih deli z drugimi. Poleg časovnega stroja je Git
|
jih deli z drugimi. Poleg časovnega stroja je Git
|
||||||
tudi \emph{razpršeno skladišče datotek}. Omogoča, da datoteke
|
tudi razpršeno skladišče datotek. Omogoča, da datoteke
|
||||||
hkrati ureja več uporabnikov na različnih računalnikih in
|
hkrati ureja več uporabnikov na različnih računalnikih in
|
||||||
kasneje spremembe združi.
|
kasneje spremembe združi.
|
||||||
|
|
||||||
Git hrani vsebino mape z datotekami in celotno zgodovino različic
|
Git hrani vsebino mape z datotekami in celotno zgodovino različic
|
||||||
datotek iz preteklosti. Za vsako različico hrani Git zapis o avtorju,
|
datotek iz preteklosti. Za vsako različico hrani Git zapis o avtorju,
|
||||||
datumu in opis sprememb, ki so nastale v primerjavi s predhodno
|
datumu in opis sprememb, ki so nastale v primerjavi s predhodno
|
||||||
različico. Vse te imformacije dajejo podroben pregled nad zgodovino
|
različico. Vse te informacije dajejo podroben pregled nad zgodovino
|
||||||
sprememb.
|
sprememb.
|
||||||
|
|
||||||
Sisteme, ki omogočajo hranjenje preteklih različic datotek, imenujemo
|
Sisteme, ki omogočajo hranjenje preteklih različic datotek, imenujemo
|
||||||
\href{https://en.wikipedia.org/wiki/Version_control}{sistemi za nadzor
|
%\href{https://en.wikipedia.org/wiki/Version_control}
|
||||||
različic} (angl. version control system (VCS)) ali \emph{sistemi za
|
\emph{sistemi za nadzor različic} (angl. version control system (VCS)) ali \emph{sistemi za
|
||||||
upravljanje z izvorno kodo} (angl. Source Code Management (SCM)).
|
upravljanje z izvorno kodo} (angl. Source Code Management (SCM)).
|
||||||
Poleg nadzora različic Git omogoča hkratno spreminjanje datotek več
|
Poleg nadzora različic Git omogoča hkratno spreminjanje datotek več
|
||||||
uporabnikov na različnih računalnikih. Zato je Git
|
uporabnikov na različnih računalnikih. Zato je Git
|
||||||
\href{https://en.wikipedia.org/wiki/Distributed_version_control}{distribuiran
|
%\href{https://en.wikipedia.org/wiki/Distributed_version_control}
|
||||||
sistem za nadzor različic} (angl. Distributed Version Control System
|
\emph{distribuiran sistem za nadzor različic} (angl. Distributed Version Control System
|
||||||
(DVCS)).
|
(DVCS)).
|
||||||
|
|
||||||
\begin{opomba}
|
\begin{opomba}
|
||||||
|
|
@ -96,13 +96,14 @@ sistem za nadzor različic} (angl. Distributed Version Control System
|
||||||
\end{opomba}
|
\end{opomba}
|
||||||
|
|
||||||
V nadaljevanju si bomo ogledali, kako Git uporablja
|
V nadaljevanju si bomo ogledali, kako Git uporablja
|
||||||
\href{https://sl.wikipedia.org/wiki/Zgo\%C5\%A1\%C4\%8Devalna_funkcija}{zgoščevalno funkcijo}
|
%\href{https://sl.wikipedia.org/wiki/Zgo\%C5\%A1\%C4\%8Devalna_funkcija}
|
||||||
|
\emph{zgoščevalno funkcijo}
|
||||||
(angl. hash function) in posplošitev
|
(angl. hash function) in posplošitev
|
||||||
\href{https://en.wikipedia.org/wiki/Merkle_tree}{Merklejevih dreves}
|
%\href{https://en.wikipedia.org/wiki/Merkle_tree}
|
||||||
za hranjenje posnetkov vsebine mape. Kako zgodovino sprememb predstavimo z
|
\emph{Merklejevih dreves} za hranjenje posnetkov vsebine mape. Zgodovino sprememb bomo predstavili z
|
||||||
\href{https://en.wikipedia.org/wiki/Directed_acyclic_graph}{usmerjenim
|
%\href{https://en.wikipedia.org/wiki/Directed_acyclic_graph}
|
||||||
acikličnim grafom}, v katerem so vozlišča različice, povezave pa
|
\emph{usmerjenim grafom}, v katerem so vozlišča različice, povezave pa
|
||||||
povežejo različice z njihovimi neposrednimi predhodniki in
|
povežejo različice z njihovimi neposrednimi predhodniki. Spoznali bomo,
|
||||||
kako preproste reference (kazalci) na vsebino
|
kako preproste reference (kazalci) na vsebino
|
||||||
omogočajo bliskovito preklaplanje med različicami in preprečijo
|
omogočajo bliskovito preklaplanje med različicami in preprečijo
|
||||||
popolno zmešnjavo, ko več ljudi hkrati spreminja iste datoteke?
|
popolno zmešnjavo, ko več ljudi hkrati spreminja iste datoteke?
|
||||||
|
|
@ -119,7 +120,7 @@ Ko ustvarimo nov Git repozitorij, Git ustvari podmapo z imenom
|
||||||
\item
|
\item
|
||||||
drevesna struktura korenske mape, ki jo hranimo v repozitoriju,
|
drevesna struktura korenske mape, ki jo hranimo v repozitoriju,
|
||||||
\item
|
\item
|
||||||
posnetki stanja v različnih trenutkih s podatki o avtoju, datumu in
|
posnetki stanja v različnih trenutkih s podatki o avtorju, datumu in
|
||||||
opisu sprememb,
|
opisu sprememb,
|
||||||
\item
|
\item
|
||||||
kazalci na posamezne posnetke stanja.
|
kazalci na posamezne posnetke stanja.
|
||||||
|
|
@ -152,11 +153,11 @@ izbrana tako, da sprememba enega samega bita v besedilu \(b \in B\)
|
||||||
spremeni vrednost \(H(b)\) in je porazdelitev vrednosti \(H(b)\) čim
|
spremeni vrednost \(H(b)\) in je porazdelitev vrednosti \(H(b)\) čim
|
||||||
bližje enakomerni porazdelitvi. To pomeni, da so vse vrednosti \(H(b)\)
|
bližje enakomerni porazdelitvi. To pomeni, da so vse vrednosti \(H(b)\)
|
||||||
približno enako verjetne. Na ta način zmanjšamo verjetnost trka
|
približno enako verjetne. Na ta način zmanjšamo verjetnost trka
|
||||||
(glej poglavje \ref{sec_trk}). Verjetnost trka
|
(glej razdelek \ref{sec_trk}). Verjetnost trka
|
||||||
je izjemno majhna, zato Git lahko predpostavi, da je niz \(b\) enolično
|
je izjemno majhna, zato Git lahko predpostavi, da je niz \(b\) enolično
|
||||||
določen z njegovo zgostitvijo \(H(b)\).
|
določen z njegovo zgostitvijo \(H(b)\).
|
||||||
Git uporablja \(160\) bitno zgoščevalno funkcijo \emph{SHA1}, ki se je
|
Git uporablja \(160\) bitno zgoščevalno funkcijo \emph{SHA1}, ki se jo
|
||||||
uporabljala v kriptografiji\footnote{Leta 2017 so raziskovalci iz CWI
|
uporablja v kriptografiji\footnote{Leta 2017 so raziskovalci iz CWI
|
||||||
Amsterdam in Google Research našli prvi praktični primer dveh
|
Amsterdam in Google Research našli prvi praktični primer dveh
|
||||||
različnih pdf datotek, ki imata isto SHA1
|
različnih pdf datotek, ki imata isto SHA1
|
||||||
zgostitev\cite{stevens_first_2017}. Opisan napad so poimenovali
|
zgostitev\cite{stevens_first_2017}. Opisan napad so poimenovali
|
||||||
|
|
@ -481,6 +482,8 @@ Opremljeni z razumevanjem podatkovnega modela Gita, lažje razumemo
|
||||||
posamezne operacije, ki jih Git omogoča. Ukazov ne bom
|
posamezne operacije, ki jih Git omogoča. Ukazov ne bom
|
||||||
prevajal, ampak jih bom navedel kot jih pozna program \texttt{git}.
|
prevajal, ampak jih bom navedel kot jih pozna program \texttt{git}.
|
||||||
|
|
||||||
|
\texttt{git status} - preveri, če je prišlo do kakšne spremembe od zadnjeag vnosa in prikaže datoteke, ki so se spremenile.
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
git checkout referenca
|
git checkout referenca
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
@ -498,18 +501,12 @@ index). V zgodovinskem grafu ustvari novo vozlišče, ki je povezano s
|
||||||
prejšnjim vnosom. Poleg tega prestavi aktivno vejo in oznako
|
prejšnjim vnosom. Poleg tega prestavi aktivno vejo in oznako
|
||||||
\texttt{HEAD} na novo ustvarjeni vnos.
|
\texttt{HEAD} na novo ustvarjeni vnos.
|
||||||
|
|
||||||
\begin{verbatim}
|
\texttt{git add bla.txt} - doda vsebino spremenjene datoteke \texttt{bla.txt} v čakalnico. Ukaz ne
|
||||||
git add bla.txt
|
|
||||||
\end{verbatim}
|
|
||||||
doda vsebino spremenjene datoteke \texttt{bla.txt} v čakalnico. Ukaz ne
|
|
||||||
spreminja zgodovinskega grafa, pač pa doda novo vsebino in datotečna
|
spreminja zgodovinskega grafa, pač pa doda novo vsebino in datotečna
|
||||||
drevesa, ki vsebujejo spremembe v shrambo objektov. Vsebina čakalnice bo
|
drevesa, ki vsebujejo spremembe v shrambo objektov. Vsebina čakalnice bo
|
||||||
zabeležena v naslednjem vnosu.
|
zabeležena v naslednjem vnosu.
|
||||||
|
|
||||||
\begin{verbatim}
|
\texttt{git pull} - pobere vsebino (objekte in reference) iz oddaljenega repozitorija in
|
||||||
git pull
|
|
||||||
\end{verbatim}
|
|
||||||
pobere vsebino (objekte in reference) iz oddaljenega repozitorija in
|
|
||||||
uskladi lokalno vejo z oddaljeno. Shrambi objektov se preprosto doda
|
uskladi lokalno vejo z oddaljeno. Shrambi objektov se preprosto doda
|
||||||
nove objekte, ki so v oddaljeni veji. Če je lokalna veja prednik
|
nove objekte, ki so v oddaljeni veji. Če je lokalna veja prednik
|
||||||
oddaljene, se lokalna veja enostavno prestavi, da kaže na isti vnos, kot
|
oddaljene, se lokalna veja enostavno prestavi, da kaže na isti vnos, kot
|
||||||
|
|
|
||||||
|
|
@ -68,3 +68,11 @@
|
||||||
pages = {369--378},
|
pages = {369--378},
|
||||||
file = {Full Text PDF:C\:\\Users\\marti\\Zotero\\storage\\9CPCST7H\\Merkle - 1988 - A Digital Signature Based on a Conventional Encryption Function.pdf:application/pdf},
|
file = {Full Text PDF:C\:\\Users\\marti\\Zotero\\storage\\9CPCST7H\\Merkle - 1988 - A Digital Signature Based on a Conventional Encryption Function.pdf:application/pdf},
|
||||||
}
|
}
|
||||||
|
@software{git_software,
|
||||||
|
author = {Linus Torvalds and Junio C Hamano and others},
|
||||||
|
title = {Git},
|
||||||
|
url = {https://git-scm.com/},
|
||||||
|
urldate = {2026-02-14},
|
||||||
|
version = {2.48.1},
|
||||||
|
year = {2026},
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue