开发者

Do I need to re-make and re-install couchdb everytime I want to test a change to the source?

I am trying to contribute more with couchdb code, but I have really no idea how it is done the right way.

I have cloned the source from apache git repository and built it with

./configure
make && sudo make insta开发者_如何学编程ll

Then I wanted to change a file from the source called couch_httpd_show.erl

Do I need to run make && sudo make install again for every change I make to the source code and want to see how it behaves?

I am sure there's a more practical way to do it, because this approach is a bit time and patience consuming right?


Yes, there is a shortcut.

./configure
make dev
./utils/run

This builds and runs CouchDB entirely in the current directory. Instead of running as a background daemon, CouchDB will run in the foreground and output log messages to the terminal. It uses some local directories to store stuff: ./tmp/log for logs, ./tmp/lib for databases, and (if I remember correctly) ./etc/couch/local_dev.ini for configuration.

If you run this instead:

./utils/run -i

then you will also have an interactive Erlang prompt, which you can use to help debug.

When I work on CouchDB, I run this in the shell:

make dev && ./utils/run -i

After I change some code, I press ^C, up-arrow, return.

When I joined Couchio, I was responsible for production CouchDB deployments. I asked Chris Anderson for advice about something and he said, "Sorry, ask Jan. I've been just using utils/run for years!"


You can rebuild that one file and drop the output beam in place and restart.


erlc <file.erl>

& then copy the .beam file into place. To restart couchdb use either init:restart(). in the erlang shell or POST /_restart to CouchDB.

Although you might want to consider using the commandline erlang & javascript test suite also to ensure you didn't break anything.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜