# You can synchronize a remote package on which yours depends with git
# to 'third_party' (or another directory).
#
# Here is an example using nlunit-test. Uncomment and adapt or
# delete this, as needed. If you do not have any packages to
# sychronize, then this file is unneeded and may be deleted from your
# project.
#
# If you choose to use this, please also take a look at configure.ac,
# Makefile.am, and third_party/Makefile.am and uncomment the appropriate
# sections there.
#
# The 'pull' section is optional. The 'pull' section allows you to
# optionally specify the 'method' key as 'clone' or 'submodule'
# (defaulting to 'clone' when the key is not present). This selects
# whether 'git clone' or 'git submodule' is used to pull down
# repositories.
#
# While the 'branch' key is required, the 'commit' key is
# optional. The 'commit' key allows you to specify a particular commit
# hash or tag if you do not want HEAD of the specified branch.

# [pull]
#	method = clone
#
# [submodule "nlunit-test"]
# 	path = third_party/nlunit-test/repo
# 	url = https://github.com/nestlabs/nlunit-test.git
# 	branch = master
#	commit = 561a155bb7257e54198cf5496f74ed5bc41cf85f
# 	update = none
