skilleter-thingy 0.0.86__py3-none-any.whl → 0.0.88__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of skilleter-thingy might be problematic. Click here for more details.

@@ -504,13 +504,23 @@ def mg_run(args, config, console):
504
504
 
505
505
  _ = config
506
506
 
507
- cmd = shlex.split(args.cmd[0])
507
+ if len(args.cmd) == 0:
508
+ error('No command specified')
509
+ elif len(args.cmd) == 1:
510
+ command = shlex.split(args.cmd[0])
511
+ else:
512
+ command = args.cmd
513
+
508
514
 
509
515
  for repo in select_git_repos(args, config):
510
516
  if not args.quiet:
511
517
  show_progress(console.columns, repo.name)
512
518
 
513
- run_git_status(cmd, repo.name, args.cont)
519
+ repo_command = []
520
+ for cmd in command:
521
+ repo_command.append(branch_name(cmd, repo['default branch']))
522
+
523
+ run_git_status(repo_command, repo.name, args.cont)
514
524
 
515
525
  ################################################################################
516
526
 
@@ -611,9 +621,9 @@ def main():
611
621
 
612
622
  parser_clean.add_argument('--recurse', '-d', action='store_true', help='Recurse into subdirectories')
613
623
  parser_clean.add_argument('--force', '-f', action='store_true', help='If the Git configuration variable clean.requireForce is not set to false, git clean will refuse to delete files or directories unless given -f or -i')
614
- #parser_clean.add_argument('--interactive', '-i', action='store_true', help='Show what would be done and clean files interactively.')
624
+ # TODO: parser_clean.add_argument('--interactive', '-i', action='store_true', help='Show what would be done and clean files interactively.')
615
625
  parser_clean.add_argument('--dry-run', '-n', action='store_true', help='Don’t actually remove anything, just show what would be done.')
616
- #parser_clean.add_argument('--quiet', '-q', , action='store_true', help='Be quiet, only report errors, but not the files that are successfully removed.')
626
+ # TODO: parser_clean.add_argument('--quiet', '-q', , action='store_true', help='Be quiet, only report errors, but not the files that are successfully removed.')
617
627
  parser_clean.add_argument('--exclude', '-e', action='store', help='Use the given exclude pattern in addition to the standard ignore rules.')
618
628
  parser_clean.add_argument('-x', action='store_true', help='Don’t use the standard ignore rules, but still use the ignore rules given with -e options from the command line.')
619
629
  parser_clean.add_argument('-X', action='store_true', help='Remove only files ignored by Git. This may be useful to rebuild everything from scratch, but keep manually created files.')
@@ -625,7 +635,7 @@ def main():
625
635
 
626
636
  parser_run = subparsers.add_parser('run', help='Run any git command in each of the working trees')
627
637
  parser_run.add_argument('--cont', '-c', action='store_true', help='Continue if the command returns an error in any of the working trees')
628
- parser_run.add_argument('cmd', nargs=1, action='store', help='The command to run (should be quoted)')
638
+ parser_run.add_argument('cmd', nargs='*', action='store', help='The command to run (the command may need to be quoted)')
629
639
 
630
640
  parser_review = subparsers.add_parser('review', help='Review the changes in a working tree')
631
641
  parser_review.add_argument('parameters', nargs='*', action='store', help='Parameters passed to the "git review" command')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: skilleter_thingy
3
- Version: 0.0.86
3
+ Version: 0.0.88
4
4
  Summary: A collection of useful utilities, mainly aimed at making Git more friendly
5
5
  Author-email: John Skilleter <john@skilleter.org.uk>
6
6
  Project-URL: Home, https://skilleter.org.uk
@@ -33,7 +33,56 @@ The following commands are documented in detail in the help output that can be d
33
33
 
34
34
  This README just contains a summary of the functionality of each command.
35
35
 
36
- # Git Utilities
36
+ # Git Repo Management
37
+
38
+ ## multigit
39
+
40
+ Manage a collection of related git working trees.
41
+
42
+ This is intended for use in a situation where you have a collection of related git working trees organised in a directory hierarchy and not necessarily managed using git submodules or any other tool. It allows you to run git commands on multiple working trees at once, without navigating around the different working trees to do so.
43
+
44
+ Start by running ensuring that the default branch (e.g. `main`) is checked out in each of the working trees and, in the top-level directory, run `multigit init` to create the configuration file which, by default is called `multigit.toml` - this is just a text file that sets the configuration for each working tree in terms of name, origin, default branch and location.
45
+
46
+ By default, when a multigit command, other than `init` is run, it runs a git command in each of the working trees. The command takes a number of options that can be used to select the list of working trees that each of the subcommands that it supports runs in:
47
+
48
+ *--repos / -r* Allows a list of working trees to be specfied, either as the full or relative path, the name or a wildcard.
49
+
50
+ *--modified / -m* Run only in working trees containing locally modified files
51
+
52
+ *--branched / -b* Run only working trees where the current branch that is checked out is NOT the default branch
53
+
54
+ # TODO - Do we actually need any commands other than init, dir, config as everything else can be done via run?
55
+ # TODO - Could just make the commands multigit +init/+dir/+config and then for anything else, just pass the whole of the command line to git once we've parsed the default branch?
56
+
57
+ Multigit supports a (growing) list of subcommands:
58
+
59
+ *init* - Create or update the configuration file
60
+
61
+ *status* - Run `git status` in each of the working trees.
62
+
63
+ *fetch* - Run `git fetch` in each of the working trees
64
+
65
+ *pull* - Run `git pull` in each of the working trees
66
+
67
+ *push* - Run `git push` in each of the working trees
68
+
69
+ *co*
70
+
71
+ *commit*
72
+
73
+ *update*
74
+
75
+ *clean*
76
+
77
+ *dir*
78
+
79
+ *config*
80
+
81
+ *review*
82
+
83
+ *run*
84
+
85
+ # Miscellaneous Git Utilities
37
86
 
38
87
  ## ggit
39
88
 
@@ -47,6 +96,10 @@ Run 'git grep' in all repos under the current directory (note that this is not r
47
96
 
48
97
  Output a string containing colour-coded shell nesting level, current directory and git working tree status (used in the shell prompt).
49
98
 
99
+ # Git Extensions
100
+
101
+ Due to the way that the git command works, these can be run as they were additional git subcommands
102
+
50
103
  ## git ca
51
104
 
52
105
  Improved version of 'git commit --amend'. Updates files that are already in the commit and, optionally, adds and commits additional files.
@@ -75,10 +128,6 @@ Output the top level directory of the git working tree or return an error if we
75
128
 
76
129
  Console-based git change review tool.
77
130
 
78
- ## multigit
79
-
80
- Manage a collection of related git repoitories.
81
-
82
131
  ## GitLab Commands
83
132
 
84
133
  ### git mr
@@ -25,7 +25,7 @@ skilleter_thingy/gl.py,sha256=9zbGpKxw6lX9RghLkdy-Q5sZlqtbB3uGFO04qTu1dH8,5954
25
25
  skilleter_thingy/gphotosync.py,sha256=Vb2zYTEFp26BYdkG810SRg9afyfDqvq4CLHTk-MFf60,22388
26
26
  skilleter_thingy/linecount.py,sha256=5voQtjJjDCVx4zjPwVRy620NpuLiwwFitzxjIsRGtxQ,4310
27
27
  skilleter_thingy/moviemover.py,sha256=j_Xb9_jFdgpFBAXcF4tEqbnKH_FonlnUU39LiCK980k,4470
28
- skilleter_thingy/multigit.py,sha256=73y-gypIVHy0TEbrUEYx_zmxyBCE1CSHGAw_f6sacTk,27008
28
+ skilleter_thingy/multigit.py,sha256=E7Gsp4vnGEGicZXIt3GYFx6G1BOlPHAvftFSGuzQlas,27319
29
29
  skilleter_thingy/photodupe.py,sha256=l0hbzSLb2Vk2ceteg-x9fHXCEE1uUuFo84hz5rsZUPA,4184
30
30
  skilleter_thingy/phototidier.py,sha256=5gSjlINUxf3ZQl3NG0o7CsWwODvTbokIMIafLFvn8Hc,7818
31
31
  skilleter_thingy/py_audit.py,sha256=xJm5k5qyeA6ii8mODa4dOkmP8L1drv94UHuxR54RsIM,4384
@@ -61,9 +61,9 @@ skilleter_thingy/thingy/run.py,sha256=6SNKWF01fSxzB10GMU9ajraXYZqAL1w0PXkqjJdr1U
61
61
  skilleter_thingy/thingy/tfm_pane.py,sha256=oqy5zBzKwfbjbGqetbbhpKi4x5He7sl4qkmhUeqtdZc,19789
62
62
  skilleter_thingy/thingy/tidy.py,sha256=71DCyj0VJrj52RmjQyj1eOiQJIfy5EIPHuThOrS6ZTA,5876
63
63
  skilleter_thingy/thingy/venv_template.py,sha256=SsVNvSwojd8NnFeQaZPCRQYTNdwJRplpZpygbUEXRnY,1015
64
- skilleter_thingy-0.0.86.dist-info/LICENSE,sha256=ljOS4DjXvqEo5VzGfdaRwgRZPbNScGBmfwyC8PChvmQ,32422
65
- skilleter_thingy-0.0.86.dist-info/METADATA,sha256=bAz40wBMT5sl4tQNNV81H9gRZBZewCUf3JAtpOk0fNg,6113
66
- skilleter_thingy-0.0.86.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
67
- skilleter_thingy-0.0.86.dist-info/entry_points.txt,sha256=u5ymS-KPljIGTnprV5yJsAjz7qgeT2BZ-Qo_Con_PFM,2145
68
- skilleter_thingy-0.0.86.dist-info/top_level.txt,sha256=8-JhgToBBiWURunmvfpSxEvNkDHQQ7r25-aBXtZv61g,17
69
- skilleter_thingy-0.0.86.dist-info/RECORD,,
64
+ skilleter_thingy-0.0.88.dist-info/LICENSE,sha256=ljOS4DjXvqEo5VzGfdaRwgRZPbNScGBmfwyC8PChvmQ,32422
65
+ skilleter_thingy-0.0.88.dist-info/METADATA,sha256=gXBQaiSXfgKjKq_tduHXU_lb0_4FKxjEBRMx87_JsSk,8239
66
+ skilleter_thingy-0.0.88.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
67
+ skilleter_thingy-0.0.88.dist-info/entry_points.txt,sha256=u5ymS-KPljIGTnprV5yJsAjz7qgeT2BZ-Qo_Con_PFM,2145
68
+ skilleter_thingy-0.0.88.dist-info/top_level.txt,sha256=8-JhgToBBiWURunmvfpSxEvNkDHQQ7r25-aBXtZv61g,17
69
+ skilleter_thingy-0.0.88.dist-info/RECORD,,