summaryrefslogtreecommitdiff
path: root/Command/Sync.hs
Commit message (Collapse)AuthorAge
* added ifM and nuked 11 lines of codeGravatar Joey Hess2012-03-14
| | | | no behavior changes
* sync: Sync to lower cost remotes first.Gravatar Joey Hess2012-03-10
| | | | | | | | | This has two benefits. 1. When a lot of refs are going to be received, get them via lower cost connection when possible. 2. Allows ctrl-c of sync after the cheaper remotes have been pulled from (or pushed to).
* improve alwayscommit=false modeGravatar Joey Hess2012-02-25
| | | | | | | | | | | | | | Now changes are staged into the branch's index, but not committed, which avoids growing a large journal. And sync and merge always explicitly commit, ensuring that even when they do nothing else, they commit the staged changes. Added a flag file to indicate that the branch's journal contains uncommitted changes. (Could use git ls-files, but don't want to run that every time.) In the future, this ability to have uncommitted changes staged in the journal might be used on remotes after a series of oneshot commands.
* hlintGravatar Joey Hess2012-02-16
|
* look up --to and --from remote names only onceGravatar Joey Hess2012-01-06
| | | | This will speed up commands like move and drop.
* tweakGravatar Joey Hess2012-01-02
|
* skip local remotes that are not available (ie, not mounted)Gravatar Joey Hess2011-12-31
| | | | | | | With --fast, unavailable local remotes are filtered out of the fast set. This way, if there are local remotes, --fast always acts only on them, and if none are mounted, acts on nothing. This consistency is better than --fast acting on different remotes depending on what's mounted.
* type alias cleanupGravatar Joey Hess2011-12-31
|
* refactor and check for a detached HEADGravatar Joey Hess2011-12-31
|
* better filtering out of special remotesGravatar Joey Hess2011-12-31
|
* never pick special remotes in --fastGravatar Joey Hess2011-12-31
| | | | even if they have the lowest cost, we cannot use them
* remove unnecessary checkGravatar Joey Hess2011-12-31
| | | | | mergeLocal always creates the local sync branch, so no need to check that it exists later.
* refactorGravatar Joey Hess2011-12-31
|
* really fix check that remote needs mergedGravatar Joey Hess2011-12-31
|
* tweakGravatar Joey Hess2011-12-31
|
* tweakGravatar Joey Hess2011-12-31
|
* fix check that remote branch needs mergedGravatar Joey Hess2011-12-31
|
* minor cleanupsGravatar Joey Hess2011-12-31
| | | | mergeFrom is never called on branches that don't exist anymore
* avoid syncing remotes configured annex-ignore, unless explicitly specifiedGravatar Joey Hess2011-12-31
|
* sync --fast: Selects some of the remotes with the lowest annex.cost and ↵Gravatar Joey Hess2011-12-30
| | | | syncs those, in addition to any specified at the command line.
* push when git-annex branch changedGravatar Joey Hess2011-12-30
| | | | I was too heavy-handed in optimising away pushes
* automated syncingGravatar Joey Hess2011-12-30
| | | | | | Some changes to make automated syncing nicer. Merge from both the remote's $branch and its synced/$branch; either could have new changes. Create synced/$branch on the remote when pushing.
* automatically create the syncbranchGravatar Joey Hess2011-12-30
|
* refactorGravatar Joey Hess2011-12-30
|
* refactorGravatar Joey Hess2011-12-30
|
* check that synced/master exists before trying to use itGravatar Joey Hess2011-12-30
| | | | and a nice error message if syncing is not set up yet
* check if branches are up-to-date before merging, pushingGravatar Joey Hess2011-12-30
| | | | | | This optimises away the need to run anything in some common cases. It's particularly useful on push; no need to push if the tracking branch we just pulled is the same as the branch we're going to push.
* improve wordingGravatar Joey Hess2011-12-30
|
* message cleanupGravatar Joey Hess2011-12-30
|
* avoid using Git.Ref.describe except for when generating user messagesGravatar Joey Hess2011-12-30
| | | | | | | | The other uses of it can all be simplified using Git.Ref.base, Git.Ref.under, and show. In some cases, describe was being used to shorten the branch name unnecessarily, and I instead pass the fully qualified name to git.
* update to my indentation styleGravatar Joey Hess2011-12-30
|
* force git-annex branch update after fetching remotesGravatar Joey Hess2011-12-30
| | | | | | | | git-annex normally only runs the branch update once per run, for speed, but since this fetches new remote git-annex tracking branches, they need to be merged in after that fetch. An earlier call to Remote.byName was causing the update to run before the fetch sometimes, but it could have been anything. Just force the update to happen in the right place.
* By default, sync with all remotes having the synced/ branchGravatar Joachim Breitner2011-12-29
|
* Implement branch-syncing in Command.SyncGravatar Joachim Breitner2011-12-29
| | | | | as described in the previous commit to the documentation. The loggin UI is not great yet.
* more partial function removalGravatar Joey Hess2011-12-15
| | | | | Left a few Prelude.head's in where it was checked not null and too hard to remove, etc.
* split out Git/Command.hsGravatar Joey Hess2011-12-14
|
* split out three modules from GitGravatar Joey Hess2011-12-13
| | | | | Constructors and configuration make sense in separate modules. A separate Git.Types is needed to avoid cycles.
* separate operationsGravatar Joey Hess2011-12-10
|
* sync: New command that synchronises the local repository and default remote, ↵Gravatar Joey Hess2011-12-09
by running git commit, pull, and push for you.