Skip to content

Commit 52ba961

Browse files
committed
Implemented depth setting that can be saved globally, per repository and chosen for each fetch, pull and clone
1 parent 80feea0 commit 52ba961

29 files changed

+278
-17
lines changed

src/Commands/Clone.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,16 @@
22
{
33
public class Clone : Command
44
{
5-
public Clone(string ctx, string path, string url, string localName, string sshKey, string extraArgs)
5+
public Clone(string ctx, string path, string url, string localName, string sshKey, int depth, string extraArgs)
66
{
77
Context = ctx;
88
WorkingDirectory = path;
99
SSHKey = sshKey;
1010
Args = "clone --progress --verbose ";
1111

12+
if(depth > 0)
13+
Args += $"--depth {depth} ";
14+
1215
if (!string.IsNullOrEmpty(extraArgs))
1316
Args += $"{extraArgs} ";
1417

src/Commands/Fetch.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace SourceGit.Commands
44
{
55
public class Fetch : Command
66
{
7-
public Fetch(string repo, string remote, bool noTags, bool force)
7+
public Fetch(string repo, string remote, bool noTags, bool force, int depth)
88
{
99
_remoteKey = $"remote.{remote}.sshkey";
1010

@@ -20,16 +20,22 @@ public Fetch(string repo, string remote, bool noTags, bool force)
2020
if (force)
2121
Args += "--force ";
2222

23+
if(depth > 0)
24+
Args += $"--depth {depth} ";
25+
2326
Args += remote;
2427
}
2528

26-
public Fetch(string repo, Models.Branch local, Models.Branch remote)
29+
public Fetch(string repo, Models.Branch local, Models.Branch remote, int depth)
2730
{
2831
_remoteKey = $"remote.{remote.Remote}.sshkey";
2932

3033
WorkingDirectory = repo;
3134
Context = repo;
3235
Args = $"fetch --progress --verbose {remote.Remote} {remote.Name}:{local.Name}";
36+
37+
if(depth > 0)
38+
Args += $"--depth {depth} ";
3339
}
3440

3541
public async Task<bool> RunAsync()

src/Commands/Pull.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace SourceGit.Commands
44
{
55
public class Pull : Command
66
{
7-
public Pull(string repo, string remote, string branch, bool useRebase)
7+
public Pull(string repo, string remote, string branch, bool useRebase, int depth)
88
{
99
_remote = remote;
1010

@@ -15,6 +15,9 @@ public Pull(string repo, string remote, string branch, bool useRebase)
1515
if (useRebase)
1616
Args += "--rebase=true ";
1717

18+
if(depth > 0)
19+
Args += $"--depth {depth} ";
20+
1821
Args += $"{remote} {branch}";
1922
}
2023

src/Models/RepositorySettings.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,18 @@ public string LastCommitMessage
236236
set;
237237
} = string.Empty;
238238

239+
public bool UseCustomDepth
240+
{
241+
get;
242+
set;
243+
} = false;
244+
245+
public int Depth
246+
{
247+
get;
248+
set;
249+
} = 1;
250+
239251
public Dictionary<string, FilterMode> CollectHistoriesFilters()
240252
{
241253
var map = new Dictionary<string, FilterMode>();

src/Resources/Locales/de_DE.axaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@
125125
<x:String x:Key="Text.Clone.ParentFolder" xml:space="preserve">Übergeordneter Ordner:</x:String>
126126
<x:String x:Key="Text.Clone.RecurseSubmodules" xml:space="preserve">Submodule initialisieren und aktualisieren</x:String>
127127
<x:String x:Key="Text.Clone.RemoteURL" xml:space="preserve">Repository URL:</x:String>
128+
<x:String x:Key="Text.Clone.UseCustomDepth" xml:space="preserve">Use Custom Depth</x:String>
128129
<x:String x:Key="Text.Close" xml:space="preserve">SCHLIESSEN</x:String>
129130
<x:String x:Key="Text.CodeEditor" xml:space="preserve">Editor</x:String>
130131
<x:String x:Key="Text.CommitCM.Checkout" xml:space="preserve">Commit auschecken</x:String>
@@ -214,6 +215,7 @@
214215
<x:String x:Key="Text.Configure.Git.AutoFetchIntervalSuffix" xml:space="preserve">Minute(n)</x:String>
215216
<x:String x:Key="Text.Configure.Git.DefaultRemote" xml:space="preserve">Standard Remote</x:String>
216217
<x:String x:Key="Text.Configure.Git.PreferredMergeMode" xml:space="preserve">Bevorzugter Merge Modus</x:String>
218+
<x:String x:Key="Text.Configure.Git.UseCustomDepth" xml:space="preserve">Use Custom Depth</x:String>
217219
<x:String x:Key="Text.Configure.IssueTracker" xml:space="preserve">TICKETSYSTEM</x:String>
218220
<x:String x:Key="Text.Configure.IssueTracker.AddSampleAzure" xml:space="preserve">Beispiel für Azure DevOps Regel hinzufügen</x:String>
219221
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGerritChangeIdCommit" xml:space="preserve">Beispiel für Gerrit Change-Id hinzufügen</x:String>
@@ -368,6 +370,7 @@
368370
<x:String x:Key="Text.Fetch.NoTags" xml:space="preserve">Ohne Tags fetchen</x:String>
369371
<x:String x:Key="Text.Fetch.Remote" xml:space="preserve">Remote:</x:String>
370372
<x:String x:Key="Text.Fetch.Title" xml:space="preserve">Remote-Änderungen fetchen</x:String>
373+
<x:String x:Key="Text.Fetch.UseCustomDepth" xml:space="preserve">Use Custom Depth</x:String>
371374
<x:String x:Key="Text.FileCM.AssumeUnchanged" xml:space="preserve">Als unverändert betrachten</x:String>
372375
<x:String x:Key="Text.FileCM.Discard" xml:space="preserve">Verwerfen...</x:String>
373376
<x:String x:Key="Text.FileCM.DiscardMulti" xml:space="preserve">Verwerfe {0} Dateien...</x:String>
@@ -589,6 +592,7 @@
589592
<x:String x:Key="Text.Preferences.Git.User" xml:space="preserve">Benutzername</x:String>
590593
<x:String x:Key="Text.Preferences.Git.User.Placeholder" xml:space="preserve">Globaler Git Benutzername</x:String>
591594
<x:String x:Key="Text.Preferences.Git.Version" xml:space="preserve">Git Version</x:String>
595+
<x:String x:Key="Text.Preferences.Git.CustomDepthByDefault" xml:space="preserve">Custom Depth By Default</x:String>
592596
<x:String x:Key="Text.Preferences.GPG" xml:space="preserve">GPG SIGNIERUNG</x:String>
593597
<x:String x:Key="Text.Preferences.GPG.CommitEnabled" xml:space="preserve">Commit-Signierung</x:String>
594598
<x:String x:Key="Text.Preferences.GPG.Format" xml:space="preserve">GPG Format</x:String>
@@ -612,6 +616,7 @@
612616
<x:String x:Key="Text.Pull.LocalChanges.Discard" xml:space="preserve">Verwerfen</x:String>
613617
<x:String x:Key="Text.Pull.LocalChanges.StashAndReply" xml:space="preserve">Stashen &amp; wieder anwenden</x:String>
614618
<x:String x:Key="Text.Pull.RecurseSubmodules" xml:space="preserve">Alle Submodule aktualisieren</x:String>
619+
<x:String x:Key="Text.Pull.UseCustomDepth" xml:space="preserve">Use Custom Depth</x:String>
615620
<x:String x:Key="Text.Pull.Remote" xml:space="preserve">Remote:</x:String>
616621
<x:String x:Key="Text.Pull.Title" xml:space="preserve">Pull (Fetch &amp; Merge)</x:String>
617622
<x:String x:Key="Text.Pull.UseRebase" xml:space="preserve">Rebase anstatt Merge verwenden</x:String>

src/Resources/Locales/en_US.axaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@
121121
<x:String x:Key="Text.Clone.ParentFolder" xml:space="preserve">Parent Folder:</x:String>
122122
<x:String x:Key="Text.Clone.RecurseSubmodules" xml:space="preserve">Initialize &amp; update submodules</x:String>
123123
<x:String x:Key="Text.Clone.RemoteURL" xml:space="preserve">Repository URL:</x:String>
124+
<x:String x:Key="Text.Clone.UseCustomDepth" xml:space="preserve">Use Custom Depth</x:String>
124125
<x:String x:Key="Text.Close" xml:space="preserve">CLOSE</x:String>
125126
<x:String x:Key="Text.CodeEditor" xml:space="preserve">Editor</x:String>
126127
<x:String x:Key="Text.CommitCM.Checkout" xml:space="preserve">Checkout Commit</x:String>
@@ -212,6 +213,7 @@
212213
<x:String x:Key="Text.Configure.Git.AutoFetchIntervalSuffix" xml:space="preserve">Minute(s)</x:String>
213214
<x:String x:Key="Text.Configure.Git.DefaultRemote" xml:space="preserve">Default Remote</x:String>
214215
<x:String x:Key="Text.Configure.Git.PreferredMergeMode" xml:space="preserve">Preferred Merge Mode</x:String>
216+
<x:String x:Key="Text.Configure.Git.UseCustomDepth" xml:space="preserve">Use Custom Depth</x:String>
215217
<x:String x:Key="Text.Configure.IssueTracker" xml:space="preserve">ISSUE TRACKER</x:String>
216218
<x:String x:Key="Text.Configure.IssueTracker.AddSampleAzure" xml:space="preserve">Add Azure DevOps Rule</x:String>
217219
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGerritChangeIdCommit" xml:space="preserve">Add Gerrit Change-Id Commit Rule</x:String>
@@ -367,6 +369,7 @@
367369
<x:String x:Key="Text.Fetch.NoTags" xml:space="preserve">Fetch without tags</x:String>
368370
<x:String x:Key="Text.Fetch.Remote" xml:space="preserve">Remote:</x:String>
369371
<x:String x:Key="Text.Fetch.Title" xml:space="preserve">Fetch Remote Changes</x:String>
372+
<x:String x:Key="Text.Fetch.UseCustomDepth" xml:space="preserve">Use Custom Depth</x:String>
370373
<x:String x:Key="Text.FileCM.AssumeUnchanged" xml:space="preserve">Assume unchanged</x:String>
371374
<x:String x:Key="Text.FileCM.Discard" xml:space="preserve">Discard...</x:String>
372375
<x:String x:Key="Text.FileCM.DiscardMulti" xml:space="preserve">Discard {0} files...</x:String>
@@ -579,6 +582,7 @@
579582
<x:String x:Key="Text.Preferences.Git" xml:space="preserve">GIT</x:String>
580583
<x:String x:Key="Text.Preferences.Git.CRLF" xml:space="preserve">Enable Auto CRLF</x:String>
581584
<x:String x:Key="Text.Preferences.Git.DefaultCloneDir" xml:space="preserve">Default Clone Dir</x:String>
585+
<x:String x:Key="Text.Preferences.Git.CustomDepthByDefault" xml:space="preserve">Custom Depth By Default</x:String>
582586
<x:String x:Key="Text.Preferences.Git.Email" xml:space="preserve">User Email</x:String>
583587
<x:String x:Key="Text.Preferences.Git.Email.Placeholder" xml:space="preserve">Global git user email</x:String>
584588
<x:String x:Key="Text.Preferences.Git.EnablePruneOnFetch" xml:space="preserve">Enable --prune on fetch</x:String>
@@ -616,6 +620,7 @@
616620
<x:String x:Key="Text.Pull.Remote" xml:space="preserve">Remote:</x:String>
617621
<x:String x:Key="Text.Pull.Title" xml:space="preserve">Pull (Fetch &amp; Merge)</x:String>
618622
<x:String x:Key="Text.Pull.UseRebase" xml:space="preserve">Use rebase instead of merge</x:String>
623+
<x:String x:Key="Text.Pull.UseCustomDepth" xml:space="preserve">Use Custom Depth</x:String>
619624
<x:String x:Key="Text.Push" xml:space="preserve">Push</x:String>
620625
<x:String x:Key="Text.Push.CheckSubmodules" xml:space="preserve">Make sure submodules have been pushed</x:String>
621626
<x:String x:Key="Text.Push.Force" xml:space="preserve">Force push</x:String>

src/Resources/Locales/es_ES.axaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@
125125
<x:String x:Key="Text.Clone.ParentFolder" xml:space="preserve">Carpeta Padre:</x:String>
126126
<x:String x:Key="Text.Clone.RecurseSubmodules" xml:space="preserve">Inicializar y actualizar submódulos</x:String>
127127
<x:String x:Key="Text.Clone.RemoteURL" xml:space="preserve">URL del Repositorio:</x:String>
128+
<x:String x:Key="Text.Clone.UseCustomDepth" xml:space="preserve">Use Custom Depth</x:String>
128129
<x:String x:Key="Text.Close" xml:space="preserve">CERRAR</x:String>
129130
<x:String x:Key="Text.CodeEditor" xml:space="preserve">Editor</x:String>
130131
<x:String x:Key="Text.CommitCM.Checkout" xml:space="preserve">Checkout Commit</x:String>
@@ -216,6 +217,7 @@
216217
<x:String x:Key="Text.Configure.Git.AutoFetchIntervalSuffix" xml:space="preserve">Minuto(s)</x:String>
217218
<x:String x:Key="Text.Configure.Git.DefaultRemote" xml:space="preserve">Remoto por Defecto</x:String>
218219
<x:String x:Key="Text.Configure.Git.PreferredMergeMode" xml:space="preserve">Modo preferido de Merge</x:String>
220+
<x:String x:Key="Text.Configure.Git.UseCustomDepth" xml:space="preserve">Use Custom Depth</x:String>
219221
<x:String x:Key="Text.Configure.IssueTracker" xml:space="preserve">SEGUIMIENTO DE INCIDENCIAS</x:String>
220222
<x:String x:Key="Text.Configure.IssueTracker.AddSampleAzure" xml:space="preserve">Añadir Regla de Ejemplo para Azure DevOps</x:String>
221223
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGerritChangeIdCommit" xml:space="preserve">Añadir Regla de "Gerrit Change-Id Commit"</x:String>
@@ -371,6 +373,7 @@
371373
<x:String x:Key="Text.Fetch.NoTags" xml:space="preserve">Fetch sin etiquetas</x:String>
372374
<x:String x:Key="Text.Fetch.Remote" xml:space="preserve">Remoto:</x:String>
373375
<x:String x:Key="Text.Fetch.Title" xml:space="preserve">Fetch Cambios Remotos</x:String>
376+
<x:String x:Key="Text.Fetch.UseCustomDepth" xml:space="preserve">Use Custom Depth</x:String>
374377
<x:String x:Key="Text.FileCM.AssumeUnchanged" xml:space="preserve">Asumir como sin cambios</x:String>
375378
<x:String x:Key="Text.FileCM.Discard" xml:space="preserve">Descartar...</x:String>
376379
<x:String x:Key="Text.FileCM.DiscardMulti" xml:space="preserve">Descartar {0} archivos...</x:String>
@@ -593,6 +596,7 @@
593596
<x:String x:Key="Text.Preferences.Git.User" xml:space="preserve">Nombre del usuario</x:String>
594597
<x:String x:Key="Text.Preferences.Git.User.Placeholder" xml:space="preserve">Nombre global del usuario git</x:String>
595598
<x:String x:Key="Text.Preferences.Git.Version" xml:space="preserve">Versión de Git</x:String>
599+
<x:String x:Key="Text.Preferences.Git.CustomDepthByDefault" xml:space="preserve">Custom Depth By Default</x:String>
596600
<x:String x:Key="Text.Preferences.GPG" xml:space="preserve">FIRMA GPG</x:String>
597601
<x:String x:Key="Text.Preferences.GPG.CommitEnabled" xml:space="preserve">Firma GPG en commit</x:String>
598602
<x:String x:Key="Text.Preferences.GPG.Format" xml:space="preserve">Formato GPG</x:String>
@@ -619,6 +623,7 @@
619623
<x:String x:Key="Text.Pull.Remote" xml:space="preserve">Remoto:</x:String>
620624
<x:String x:Key="Text.Pull.Title" xml:space="preserve">Pull (Fetch &amp; Merge)</x:String>
621625
<x:String x:Key="Text.Pull.UseRebase" xml:space="preserve">Usar rebase en lugar de merge</x:String>
626+
<x:String x:Key="Text.Pull.UseCustomDepth" xml:space="preserve">Use Custom Depth</x:String>
622627
<x:String x:Key="Text.Push" xml:space="preserve">Push</x:String>
623628
<x:String x:Key="Text.Push.CheckSubmodules" xml:space="preserve">Asegurarse de que los submódulos se hayan hecho push</x:String>
624629
<x:String x:Key="Text.Push.Force" xml:space="preserve">Forzar push</x:String>

src/Resources/Locales/fr_FR.axaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@
9393
<x:String x:Key="Text.Clone.ParentFolder" xml:space="preserve">Dossier parent :</x:String>
9494
<x:String x:Key="Text.Clone.RecurseSubmodules" xml:space="preserve">Initialiser et mettre à jour les sous-modules</x:String>
9595
<x:String x:Key="Text.Clone.RemoteURL" xml:space="preserve">URL du dépôt :</x:String>
96+
<x:String x:Key="Text.Clone.UseCustomDepth" xml:space="preserve">Use Custom Depth</x:String>
9697
<x:String x:Key="Text.Close" xml:space="preserve">FERMER</x:String>
9798
<x:String x:Key="Text.CodeEditor" xml:space="preserve">Éditeur</x:String>
9899
<x:String x:Key="Text.CommitCM.Checkout" xml:space="preserve">Récupérer ce commit</x:String>
@@ -147,6 +148,7 @@
147148
<x:String x:Key="Text.Configure.Git.AutoFetch" xml:space="preserve">Fetch les dépôts distants automatiquement</x:String>
148149
<x:String x:Key="Text.Configure.Git.AutoFetchIntervalSuffix" xml:space="preserve">minute(s)</x:String>
149150
<x:String x:Key="Text.Configure.Git.DefaultRemote" xml:space="preserve">Dépôt par défaut</x:String>
151+
<x:String x:Key="Text.Configure.Git.UseCustomDepth" xml:space="preserve">Use Custom Depth</x:String>
150152
<x:String x:Key="Text.Configure.IssueTracker" xml:space="preserve">SUIVI DES PROBLÈMES</x:String>
151153
<x:String x:Key="Text.Configure.IssueTracker.AddSampleAzure" xml:space="preserve">Ajouter une règle d'exemple Azure DevOps</x:String>
152154
<x:String x:Key="Text.Configure.IssueTracker.AddSampleGiteeIssue" xml:space="preserve">Ajouter une règle d'exemple Gitee</x:String>
@@ -263,6 +265,7 @@
263265
<x:String x:Key="Text.Fetch.NoTags" xml:space="preserve">Fetch sans les tags</x:String>
264266
<x:String x:Key="Text.Fetch.Remote" xml:space="preserve">Remote :</x:String>
265267
<x:String x:Key="Text.Fetch.Title" xml:space="preserve">Récupérer les changements distants</x:String>
268+
<x:String x:Key="Text.Fetch.UseCustomDepth" xml:space="preserve">Use Custom Depth</x:String>
266269
<x:String x:Key="Text.FileCM.AssumeUnchanged" xml:space="preserve">Présumer inchangé</x:String>
267270
<x:String x:Key="Text.FileCM.Discard" xml:space="preserve">Rejeter...</x:String>
268271
<x:String x:Key="Text.FileCM.DiscardMulti" xml:space="preserve">Rejeter {0} fichiers...</x:String>
@@ -466,6 +469,7 @@
466469
<x:String x:Key="Text.Preferences.Git.User" xml:space="preserve">Nom d'utilisateur</x:String>
467470
<x:String x:Key="Text.Preferences.Git.User.Placeholder" xml:space="preserve">Nom d'utilisateur global</x:String>
468471
<x:String x:Key="Text.Preferences.Git.Version" xml:space="preserve">Version de Git</x:String>
472+
<x:String x:Key="Text.Preferences.Git.CustomDepthByDefault" xml:space="preserve">Custom Depth By Default</x:String>
469473
<x:String x:Key="Text.Preferences.GPG" xml:space="preserve">SIGNATURE GPG</x:String>
470474
<x:String x:Key="Text.Preferences.GPG.CommitEnabled" xml:space="preserve">Signature GPG de commit</x:String>
471475
<x:String x:Key="Text.Preferences.GPG.Format" xml:space="preserve">Format GPG</x:String>
@@ -491,6 +495,7 @@
491495
<x:String x:Key="Text.Pull.Remote" xml:space="preserve">Dépôt distant :</x:String>
492496
<x:String x:Key="Text.Pull.Title" xml:space="preserve">Pull (Fetch &amp; Merge)</x:String>
493497
<x:String x:Key="Text.Pull.UseRebase" xml:space="preserve">Utiliser rebase au lieu de merge</x:String>
498+
<x:String x:Key="Text.Pull.UseCustomDepth" xml:space="preserve">Use Custom Depth</x:String>
494499
<x:String x:Key="Text.Push" xml:space="preserve">Pousser</x:String>
495500
<x:String x:Key="Text.Push.CheckSubmodules" xml:space="preserve">Assurez-vous que les submodules ont été poussés</x:String>
496501
<x:String x:Key="Text.Push.Force" xml:space="preserve">Poussage forcé</x:String>

0 commit comments

Comments
 (0)