wiki:Building/SyncAll

Version 1 (modified by igloo, 3 years ago) (diff)

--

sync-all: operations over all GHC repositories at once

A GHC tree consists of multiple repositories. The sync-all Perl script lets you operate over them all at once.

The basic interface to sync-all is described in comments at the top of the source file.

Warning for Windows users: see #3899. The bottom line is this

  • Make sure that $(TOP)/_darcs/prefs/defaultrepos contains an HTTP url like http://darcs/haskell.org/ghc.git, not a SSH address like darcs.haskell.org:/home/darcs/ghc.git.

Pulling new patches

If you have an existing tree, here is how to pull new patches into all repositories.

  $ ./sync-all pull
  $ ./sync-all get

The second step is required in the event that new packages or repositories have been added to GHC.

See Building/Rebuilding for how to update your build after pulling patches.

You can also pull patches from another tree:

  $ ./sync-all -r /another/ghc pull

where /another/ghc is a path to another local GHC repository. You can specify a remote repository here too, e.g. -r http://darcs.haskell.org/ghc-7.2 (remember to omit the final "ghc.git" when using a remote repo).

The sync-all command is useful for finding out what patches you have relative to another repository:

  $ ./sync-all -r /another/ghc push --dry-run

this tells you which patches there are in your local repository tree relative to the tree over in /another/ghc.