Configuring a Remote Repository
The ./bin/
directory of the source code contains a post-update script.
Either copy this script to ./.git/hooks/post-update
or link it with a
symbolic link. To activate the hook, make it executable.
When a remote user pushes changes to the repository with git-push, the post-update hook will run and rebuild any changed files using the makefile. You may need to modify the makefile to specify a different location for the Pandoc or Markdown executables. This hook fundamentally updates the working copy and runs make to rebuild any changed Markdown files.
The working branch of the remote repository should not be updated
locally, otherwise updates are likely to cause conflicts. Changes
made locally are lost when a git reset --hard
is used.
If the local checked out repository misbehaves:
- Make a backup of the repository
git reset --hard HEAD
make clean
make
If you want to be sure things are really clean in step 3:
This will show all files that a git-clean will delete:
$ git clean -dxn
This will delete all those files:
$ git clean -dxf
Push Fails
If you get an error message similar to the following:
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.
remote: error:
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: error: its current branch; however, this is not recommended unless you
remote: error: arranged to update its work tree to match what you pushed in some
remote: error: other way.
remote: error:
remote: error: To squelch this message and still keep the default behaviour, set
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
Run the following command in the target repository:
$ git config receive.denyCurrentBranch ignore
References
Related Topics: AboutViki, CreatingABlankWiki
-- Frank Dean - 08 Feb 2010