git-lfs/commands
brian m. carlson 8797e36053
commands/prune: limit concurrency of goroutines
Any time we start a ref scanner from the prune package, we consume at
least two processes and multiple pipes per process for the standard
streams. When running many of these ref scanners in parallel, we can
spawn a large number of processes and run the program or system out of
file descriptors quite easily.

Use a semaphore to limit the number of ref scans to twice the number of
CPUs by acquiring the semaphore before each scan and releasing it
afterwards.
2019-01-15 18:53:09 +00:00
..
command_checkout.go Use proper repo permissions when creating directories 2018-12-13 17:51:02 +00:00
command_clean.go progress,tools: move CopyCallback (and related) to 'tools' 2017-11-22 14:08:33 -08:00
command_clone.go commands: teach pull() to get remote from cfg.Remote() 2017-10-27 16:11:16 -06:00
command_env.go command/env: ensure we honor lfs.url 2019-01-11 17:22:51 +00:00
command_ext.go update package imports 2016-11-15 10:01:18 -07:00
command_fetch.go tasklog: don't log progress status when stdout is not a tty 2018-11-14 14:35:29 -08:00
command_filter_process.go tq, commands: send refspec on batch upload calls 2018-01-05 11:12:57 -07:00
command_fsck.go Use proper repo permissions when creating directories 2018-12-13 17:51:02 +00:00
command_install.go lfs: use *git.Configuration instance 2017-10-25 16:12:29 -06:00
command_lock.go commands: canonicalize paths properly on Windows 2018-09-21 17:52:53 +00:00
command_locks.go locking: new "locks --cached" option to display last known lock data 2018-11-14 18:23:50 +01:00
command_logs.go remove reliance on global config filesystem vars 2017-10-18 18:09:33 -06:00
command_ls_files.go Rename ls-files --name option to --name-only (-n) 2018-09-20 09:38:17 -07:00
command_migrate_export.go tasklog: don't log progress status when stdout is not a tty 2018-11-14 14:35:29 -08:00
command_migrate_import.go tasklog: don't log progress status when stdout is not a tty 2018-11-14 14:35:29 -08:00
command_migrate_info.go Modify logic of 'migrate info' to process extensionless files 2019-01-08 12:44:06 +03:00
command_migrate.go commands/command_migrate.go: use formatRefName to qualify references 2018-09-25 14:39:15 -07:00
command_pointer.go git: change gitHashObject() to accept an io.Reader 2017-08-22 19:34:30 +02:00
command_post_checkout.go Update usage info for post-checkout 2018-01-19 21:28:09 -05:00
command_post_commit.go commands: remove any cfg.Remote() calls from Command flags 2017-10-27 15:07:36 -06:00
command_post_merge.go commands: remove any cfg.Remote() calls from Command flags 2017-10-27 15:07:36 -06:00
command_pre_push.go commands: remove internal refUpdate type in favor of git.RefUpdate 2018-01-05 15:22:25 -07:00
command_prune.go commands/prune: limit concurrency of goroutines 2019-01-15 18:53:09 +00:00
command_pull.go Use proper repo permissions when creating directories 2018-12-13 17:51:02 +00:00
command_push.go commands/command_push.go: set pushRemote 2018-07-20 16:38:39 -07:00
command_smudge.go lfs: remove LocalMediaPath() 2017-10-25 11:31:15 -06:00
command_status.go lfs: don't close pointer scanner on error 2018-11-16 14:38:52 +00:00
command_track.go commands/track: read all attributes files to parse macros 2018-12-03 17:18:50 +00:00
command_uninstall.go commands/uninstall: add a --skip-repo option 2018-10-17 18:53:04 +00:00
command_unlock.go locking: new "locks --cached" option to display last known lock data 2018-11-14 18:23:50 +01:00
command_untrack.go commands/{un,}track: local-prefix agnostic comparison 2018-04-05 10:51:26 -07:00
command_update.go git: remove unused arg 2017-10-25 19:20:35 -06:00
command_version.go lfsapi: extract new lfshttp package 2018-09-11 14:51:29 -07:00
commands_test.go all: expand config.Environment interface to support multiple values per key 2017-04-12 17:29:11 -04:00
commands.go Use proper repo permissions when creating directories 2018-12-13 17:51:02 +00:00
lockverifier.go lfsapi: extract new lfshttp package 2018-09-11 14:51:29 -07:00
multiwriter.go tasklog: check for connected tty on the actual writer 2018-11-14 14:35:29 -08:00
path_nix.go commands: osLineEnding() is more descriptive 2017-02-03 17:50:47 -07:00
path_windows.go commands: osLineEnding() is more descriptive 2017-02-03 17:50:47 -07:00
path.go commands/path.go: add documentation to trimCurrentPrefix 2018-04-05 12:17:37 -07:00
pointers.go each command should open and close a gitscanner just once 2016-11-17 17:22:21 -07:00
pull.go commands: add flags to get conflicted contents 2018-10-02 13:57:08 +00:00
run.go Use proper repo permissions when creating directories 2018-12-13 17:51:02 +00:00
uploader_test.go commands: extract lockVerifier from uploadContext 2017-11-01 17:35:43 -06:00
uploader.go commands/uploader: improve error message on missing object 2018-11-28 17:15:17 +00:00