1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
|
#use wml::debian::template title="Brug af Git til at håndtere webstedets kildekode"
#use wml::debian::translation-check translation="74a4415fa07f5810685f1d0568bf4b695cc931b3"
<h2>Introduktion</h2>
<p>Git er et <a href="https://da.wikipedia.org/wiki/Versionsstyring">\
versionsstyringssystem</a>, som hjælper med at håndtere, at der er mange
personer, der på samme tid arbejder på det samme materiale. Enhver bruger kan
have en lokal kopi af et hovedarkiv. De lokale kopier kan være på den samme
maskine eller et helt andet sted i verden. Brugerne kan dernæst ændre deres
lokale kopi, som de ønsker, og når det ændrede materiale er parat, commit'es
ændringerne og push'es (skubbes) tilbage til hovedarkivet.</p>
<p>Git tillader ikke at man push'er en commit direkte, hvis fjernarkivet
indeholder nyere commits (ændringer), end man har i sin lokale kopi i den samme
branch (forgrening). I sådanne tilfælde hvor konflikter kan opstå, skal man
først hente ændringerne og opdatere sin lokale kopi, og dernæst efter behov
<code>rebase</code> sine nye ændringer oven på den seneste commit.</p>
<h3><a name="write-access">Skriveadgang til Git</a></h3>
<p>Hele Debians websteds kildekode håndteres i Git, på adressen
<url https://salsa.debian.org/webmaster-team/webwml/>. Som standard har gæster
ikke tilladelse til at push'e commit ind i kildekodearkivet. For at få
skriveadgang til arkivet, skal man have tildelt rettighed dertil.</p>
<h4><a name="write-access-unlimited">Ubegrænset skriveadgang</a></h4>
<p>Hvis du har brug for ubegrænset skriveadgang til arkivet (fx hvis du er ved
at blive en hyppig bidragyder), så overvej at bede om skriveadgang gennem
webbrugerfladen på
<url https://salsa.debian.org/webmaster-team/webwml/>, efter du har logget på
Debians Salsa-platform. Hvis udvikling af Debians websted er nyt for dig, og du
ikke har tidligere erfaring, så send også en mail til
<a href="mailto:debian-www@lists.debian.org">debian-www@lists.debian.org</a>
med en introduktion af dig selv, før du beder om ubegrænset adgang. Skriv noget
nyttigt i din introduktion, så som hvilket sprog eller hvilken del af webstedet,
du planlægger at arbejde på, og hvem der kan stå inde for dig.</p>
<h4><a name="write-access-via-merge-request">Skrivning til arkivet gennem Merge Requests</a></h4>
<p>Hvis du ikke har i sinde at få ubegrænset skriveadgang til arkivet eller ikke
er i stand til at få det, kan du altid indsende en Merge Request og lade andre
udviklere gennemgå og acceptere dit arbejde. Indsend Merge Requests jævnfør den
almindelige procedure, som stilles til rådighed af Salsa GitLab-platformen
gennem dens webgrænseflade (læs
<a href="https://docs.gitlab.com/ee/user/project/repository/forking_workflow.html">\
Project forking workflow</a> og
<a href="https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html#when-you-work-in-a-fork">\
When you work in a fork</a> for flere oplysninger).</p>
<p>Ikke alle webstedets udviklere holder øje med Merge Requests, hvorfor der kan
gå et stykke tid, før der sker noget. Hvis du er usikker på om dit bidrag kan
accepteres, så send en mail på engelsk til postlisten
<a href="https://lists.debian.org/debian-www/">debian-www</a>, og bed om et
review.</p>
<h2><a name="work-on-repository">Arbejde i arkivet</a></h2>
<h3><a name="get-local-repo-copy">Få en lokal kopi af arkivet</a></h3>
<p>Først skal du installere Git, for at kunne arbejde med arkivet. Dernæst
opsættes din bruger og mailoplysninger på din computer (se Gits generelle
dokumentation for oplysninger om hvordan dette gøres). Herefter kan du klone
arkivet (med andre ord, lave en lokal kopi af det) på to forskellige måder.</p>
<p>Den anbefalede måde at arbejde på webwml, er først at registrere en konto på
salsa.debian.org, og aktivere adgang til Git via SSH, ved at uploade en
offentlig SSH-nøgle til din salsakonto. Se
<a href="https://salsa.debian.org/help/ssh/README.md">salsas hjælpesider</a> for
flere oplysninger om hvordan det gøres. Dernæst kan du klone webwml-arkivet med
følgende kommando:</p>
<pre>
git clone git@salsa.debian.org:webmaster-team/webwml.git
</pre>
<p>Hvis du ikke har en salsakonto, er der en alternativ metode til kloning af
arkivet ved hjælp af HTTPS-protokollen:</p>
<pre>
git clone https://salsa.debian.org/webmaster-team/webwml.git
</pre>
<p>Det giver dig en lokal kopi af det samme arkiv, men den vil ikke være i stand
til at push'e ændringer direkte tilbage på denne måde.</p>
<p>Kloning af hele webwml-arkivet kræver, at der hentes omkring 500 megabyte
data, hvilket kan være et problem for dem, med langsomme eller ustabile
internetforbindelser. Du kan i stedet prøve en begrænset kloning med en
minimal dybde, for i første omgang at overføre færre data:</p>
<pre>
git clone git@salsa.debian.org:webmaster-team/webwml.git --depth 1
</pre>
<p>Efter at have hentet et brugbart (begrænset) arkiv, kan du fordybe den lokale
begrænsede kopi, og med tiden konvertere den til et komplet lokalt arkiv:</p>
<pre>
git fetch --deepen=1000 # fordyb arkivet med yderligere 1000 commits
git fetch --unshallow # hent alle manglende commits, konverter arkivet til et komplet arkiv
</pre>
<h4><a name="partial-content-checkout">Delvis checkout af indhold</a></h4>
<p>På følgende måde kan du oprette en checkout, som kun indeholder en delmængde
af siderne:</p>
<pre>
$ git clone --no-checkout git@salsa.debian.org:webmaster-team/webwml.git
$ cd webwml
$ git config core.sparseCheckout true
I webwml: Opret filen .git/info/sparse-checkout med indhold som det følgende (hvis
du kun ønsker grundlæggende filer, engelsk, samt danske og svenske oversættelser):
/*
!/[a-z]*/
/english/
/danish/
/swedish/
Then:
$ git checkout --
</pre>
<h3><a name="submit-changes">Overførsel af lokale ændringer</a></h3>
<h4><a name="keep-local-repo-up-to-date">Hold dit lokale arkiv ajour</a></h4>
<p>En gang i mellem (og helt sikkert inden du går i gang med at redigere!), skal
du udføre en</p>
<pre>
git pull
</pre>
<p>for at hente alle ændrede filer fra arkivet.</p>
<p>Det anbefales kraftigt, at sørge for at din lokale git-arbejdsmappe er renset
før der udføres en <q>git pull</q> og efterfølgende redigeringsarbejde. Hvis du
har ændringer, som ikke er commit'et eller lokale commit, som ikke findes i det
fjerne arkiv i den aktuelle forgrening, vil en <q>git pull</q> automatisk
oprette merge-konflikter eller endda helt afbryde på grund af konflikter.
Overvej at holde dit ufuldendte arbejde i en anden forgrening eller benyt
kommandoer så som <q>git stash</q>.+</p>
<p>Bemærk: Git er et distribueret (ikke centraliseret) versionsstyringssystem.
Det betyder at når du commit'er ændringer, bliver de kun gemt i dit lokale
arkiv. For at dele dine ændringer med andre, skal du også push'e (skubbe) dem
til arkivet i Salsa.</p>
<h4><a name="example-edit-english-file">Eksempel på redigering af engelske filer</a></h4>
<p>Et eksempel på hvordan en engelsk fil redigeres i webstedets kildekodearkiv,
kan ses herunder. Efter at have få en lokal kopi af arkivet ved hjælp af
<q>git clone</q> og før redigeringsarbejdet begynder, skal følgende kommando
udføres:</p>
<pre>
$ git pull
</pre>
<p>Foretag nu dine filændringer. Når du er færdig, skal du commit'e ændringerne
til dit lokale arkiv, med</p>
<pre>
$ git add sti/til/fil(er)
$ git commit -m "Your commit message"
</pre>
# Translator's note about the message should be in English
<p>Commitmeddelelsen skal skrives på engelsk.</p>
<p>Hvis du har ubegrænset skriveadgang til det fjerne webwml-arkiv, kun du nu
skubbe dine ændringer direkte til Salsa-arkivet:</p>
<pre>
$ git push
</pre>
<p>Hvis du ikke har direkte skriveadgang til webwml-arkivet, så overvej at
indesende dine ændringer ved hjælp af Merge Request-funktionen, som findes i
Salsa GitLab-platformen, eller bed andre udviklere om hjælp.</p>
<p>Det er et meget grundlæggende resume af hvordan Git bruges til at kildekoden
til Debians websted. For flere oplysninger om Git, kan du læse Gits
dokumentation.</p>
<h4><a name="closing-debian-bug-in-git-commits">Lukning af Debian-fejl i Git-commits</a></h4>
<p>Hvis du medtager <code>Closes: #</code><var>nnnnnn</var> i din
commitmeddelelse, vil fejl nummer <code>#</code><var>nnnnnn</var> blive lukket
automatisk når du push'er dine ændringer. Det nøjagtige format er det samme,
som <a href="$(DOC)/debian-policy/ch-source.html#id24">i Debian Policy</a>.</p>
<h4><a name="links-using-http-https">Links med HTTP/HTTPS</a></h4>
<p>Mange af Debians websteder understøtter SSL/TLS, benyt derfor HTTPS-links, hvor
det er muligt og giver mening. <strong>Dog</strong> har nogle websteder
tilhørende Debian/DebConf/SPI/osv., enten ikke HTTPS-understøttelse eller
anvender kun SPI's egen certifikatmyndighed (og ikke en SSL-certifikatmyndighed,
som alle webbrowsere stoler på). For at undgå fejlmeddelelser, for besøgende der
ikke Debian, skal der ikke oprettes HTTPS-links til sådanne websteder.</p>
<p>Git-arkivet afviser commits indeholdende almindelige HTTP-links til Debians
websteder, som understøttter HTTPS, eller hvis de indeholder HTTPS-links til de
Debian-/DebConf-/SPI-websteder, som vi véd enten ikke understøtter HTTPS eller
anvender certifikater, som kun er signeret af SPI.</p>
<h3><a name="translation-work">Arbejde med oversættelser</a></h3>
<p>Oversættelser bør altid holde ajour med deres tilsvarende engelsksprogede
filer. Headeren <q>translation-check</q> i oversatte filer, anvendes til at
holde styr på hvilken version af den engelskesprogede fil, den aktuelle
oversættelse er baseret på. Hvis du ændrer oversate filer, skal du opdatere
translation-check-headeren til at svare til Git-commithashværdien i den
tilhørende ændring af den engelsksprogede fil. Du kan finde hashværdien
med:</p>
<pre>
$ git log sti/til/engelsk/fil
</pre>
<p>Hvis du foretager en ny oversættelse af en fil, så benyt skriptet
<q>copypage.pl</q>, da det opretter en skabelon for dit sprog, herunder den
korrekte translation-header.</p>
<h4><a name="translation-smart-change">Oversættelsesændringer med smart_change.pl</a></h4>
<p><code>smart_change.pl</code> er et skript beregnet til at gøre det lettere at
opdatere originale filer og deres oversættelser på samme tid. Der er to måder
at anvende skriptet på, afhængigt af hvilke ændringer, du laver.</p>
<p>For at anvende <code>smart_change</code> til blot at opdatere
translation-check-headere, når du manuelt arbejder på filer:</p>
<ol>
<li>Foretag ændringerne i de(n) original(e) fil(er), og udfør commit</li>
<li>Opdater oversættelser</li>
<li>Udfør smart_change.pl - det opsamler ændringerne og opdaterer headerne i
de oversatte filer</li>
<li>Gennemse ændringerne (fx med <code>git diff</code>)</li>
<li>Commit oversættelsesændringerne</li>
</ol>
<p>Eller, hvis du anvender smart_change med et regulært udtræk, for at foretage
adskillige ændringer på tværs af filer i ét gennemløb:</p>
<ol>
<li>Kør <code>smart_change.pl -s s/FOO/BAR/ origfil1 origfil2 ...</code></li>
<li>Gennemse ændringerne (fx med <code>git diff</code>)</li>
<li>Commit de(n) original(e) fil(er)</li>
<li>Kør <code>smart_change.pl origfil1 origfil2</code>
(dvs. denne gang <strong>uden regexp'en</strong>); det vil nu kun opdatere
headerne i de oversatte filer</li>
<li>Slutteligt commit'es ændringerne til oversættelserne</li>
</ol>
<p>Det er mere kompliceret end tidligere (behov for to commits), men uundgåeligt
på grund af den måde, Gits commithashes fungerer.</p>
<h2><a name="notifications">Modtag notifikationer</a></h2>
<h3><a name="commit-notifications">Modtag commit-notifikationer</a></h3>
<p>I Salsa har vi opsat projektet således, at commits vises i IRC-kanalen
#debian-www.</p>
<p>Hvis du ønsker at modtage notifikationer via mail, når der er commits til
webwml-arkivet, så tilmeld dig pseudopakken <q>www.debian.org</q> via
tracker.debian.org, og aktiver dér nøgleordet <q>vcs</q>, ved kun en enkelt
gang at gøre som følger:</p>
<ul>
<li>Åbn en webbrowser og gå til
<url https://tracker.debian.org/pkg/www.debian.org></li>
<li>Tilmeld dig pseudopakken <q>www.debian.org</q>. (Du kan autentificere via
SSO eller oprette en konto med mailadresse og adgangskode, hvis du ikke
allerede benytter tracker.debian.org til andre formål).</li>
<li>Gå til <url https://tracker.debian.org/accounts/subscriptions/>, derfra
til <q>modify keywords</q>, sæt kryds ved <q>vcs</q> (hvis det ikke
allerede er tilfældet) og gem.</li>
<li>Fra nu af vil du modtage mails, når nogen foretager commits til
webwml-arkivet. Vi tilføjer snart webmasterholdets andre arkiver.</li>
</ul>
<h3><a name="merge-request-notifications">Modtag Merge Request-notifikationer</a></h3>
<p>Ønsker du at modtage notifikationsmails når der er indsendes nye Merge
Requests til webwml-arkivets webgrænseflade på Salsa GitLab-platformen, kan du
opsætte dine notifikationsindstillinger for webwml-arkivet i webgrænsefladen:
</p>
<ul>
<li>Log på din Salsa-konto og gå til projektets side;</li>
<li>Klik på klokkeikonen øverst på projekthjemmesiden;</li>
<li>Vælg dit foretrukne notifikationsniveau.</li>
</ul>
|