2015-06-26 55 views
0

我正在開發一個RESTful框架,可以選擇構建HTTP和/或HTTPS支持。目前HTTP只能建說明如下:選擇性地初始化/更新git submodules

git clone --recursive https://github.com/corvusoft/restbed.git 
mkdir restbed/build 
cd restbed/build 
cmake [-DBUILD_TESTS=YES] [-DBUILD_EXAMPLES=YES] [-DCMAKE_INSTALL_PREFIX=/output-directory] .. 
make install 
make test 

我熱衷於最新的HTTPS功能承諾,但我想選擇克隆過程中的某些依賴(GIT子模塊),以幫助減少網絡流量的能力。

HTTP和HTTPS示例拉下所有依賴關係。

git clone --recursive https://github.com/corvusoft/restbed.git 
mkdir restbed/build 
cd restbed/build 
cmake [-DBUILD_TESTS=YES] [-DBUILD_EXAMPLES=YES] [-DCMAKE_INSTALL_PREFIX=/output-directory] .. 
make install 
make test 

僅HTTP示例拉下特定的依賴關係。

git clone --recursive="asio, framework" https://github.com/corvusoft/restbed.git 
mkdir restbed/build 
cd restbed/build 
cmake -DBUILD_SSL=NO [-DBUILD_TESTS=YES] [-DBUILD_EXAMPLES=YES] [-DCMAKE_INSTALL_PREFIX=/output-directory] .. 
make install 
make test 

git --recursive似乎缺乏此功能。

- 遞歸 - 遞歸子模塊創建克隆後,使用其默認設置初始化其中的所有子模塊。這相當於 克隆完成後立即運行git子模塊更新--init --recursive。這個選項被忽略,如果克隆庫 沒有worktree /結帳(即如果任何--no結賬/ -n的, --bare,或--mirror給出)

回答

1

由於文檔說,使用--recursive選項與git clone將初始化所有子模塊。您可以運行以下代碼,它直接使用git submodule僅初始化HTTP模式下的子模塊:

git clone https://github.com/corvusoft/restbed.git 
git submodule update --init --recursive dependency/asio 
git submodule update --init --recursive dependency/framework  
mkdir restbed/build 
cd restbed/build 
cmake -DBUILD_SSL=NO [-DBUILD_TESTS=YES] [-DBUILD_EXAMPLES=YES] [-DCMAKE_INSTALL_PREFIX=/output-directory] .. 
make install 
make test