Update submodules on rollback
Ensure that remotes are present before using them
Use repo, not user for git remotes
Merge pull request #75 from rschlaikjer/fix-submodule-conflict-check

Fix submodule conflict checking, missing remotes, repo logic error

* Submodules are refreshed before between merge flows
* Ensure proper remotes are fetched before referring to them in pickme flows
Delete remnant test branches
Reset and clean the repo before checking out to avoid unstaged changes blocking
Add config option for debugging

And have git commands print when True
Change remote fetching frequency and scope

Only fetch non-origin remotes when adding or editing a pickme. In addition,
fetch only the relevant branch, not the entire remote.

Master will be fetched before testing pickmes.

fetch change fixup
Merge pull request #77 from rschlaikjer/add-debug-option

Add config option for debugging git processes
Merge pull request #76 from rschlaikjer/hard-reset-before-checkout

Branch cleanup and fetch performance

* Hard reset and clean pre-checkout to prevent checkout being blocked by unstaged changes
* Force delete / recreate of test branches, to fix branches that might not have been cleaned up properly
* For performance reasons, only perform a fetch when a new remote or pickme has been added
Release 0.3.1

 BUG FIXES

 * Ensure submodules are refreshed for merge conflict detection
   (rschlaikjer, #73, #75)
 * Ensure the proper remote is fetched for merge conflict detection
   (rschlaikjer, #74, #75)
 * Hard reset and clean pre-checkout to prevent checkout being blocked
   by unstaged changes (rschlaikjer, #76)
 * Force delete / recreate of test branches, to fix branches that
   might not have been cleaned up properly (rschlaikjer, #76)

 PERFORMANCE TWEAKS

 * For performance reasons, only perform a fetch when a new remote or
   pickme has been added (rschlaikjer, #76)
Merge pull request #78 from Yelp/release-candidate

Release 0.3.1

BUG FIXES

* Ensure submodules are refreshed for merge conflict detection
  (rschlaikjer, #73, #75)
* Ensure the proper remote is fetched for merge conflict detection
  (rschlaikjer, #74, #75)
* Hard reset and clean pre-checkout to prevent checkout being blocked
  by unstaged changes (rschlaikjer, #76)
* Force delete / recreate of test branches, to fix branches that
  might not have been cleaned up properly (rschlaikjer, #76)

PERFORMANCE TWEAKS

* For performance reasons, only perform a fetch when a new remote or
  pickme has been added (rschlaikjer, #76)
When depickme-ing, only requeue pickmes that conflict-pickme
Add tests
Merge pull request #80 from rschlaikjer/requeue-only-conflicting-pickmes

When depickme-ing, only requeue pickmes that conflict-pickme
Release 0.3.2

 PERFORMANCE TWEAKS

 * Only requeue existing conflicted pickme's when a pickme
   is removed. (rschlaikjer, #79, #80)
Merge pull request #81 from Yelp/release-candidate

Release 0.3.2

 PERFORMANCE TWEAKS

 * Only requeue existing conflicted pickme's when a pickme
   is removed. (rschlaikjer, #79, #80)
Run SHA fetching and conflict checking separately

SHAs were getting set very slowly since they could be stuck behind conflict
checking jobs in the GitQueue. This caused problems where two verify jobs
could end up both running after an edit, which would raise a GitError, as
well as the issue of external resources reliant on pickme SHA not being usable.

This patch breaks the GitQueue into two queues with two workers; one for SHA
fetching, that queries the remote, and one for conflict checking, which uses
the local git repo.
A pickme cannot be it's own duplicate

Don't throw a duplicate SHA error if you are comparing the pickme
to itself.
Differentiate re-running all pickmes and all conflicting pickmes for push