Using road-sign in the function map, to find out the function call relationship.


GTalkabout is a type of communication tool for discussing and annotating source code.

Unlike the traditional way of discussion, GTalkabout relates the messages and the position of the source code and it will become annotation messages. The messages could have the property of code's comments and can be located through the code, and vice versa, even if the code has been changed (we'll introduce how to deal with the code's modification later).

With comparison with comments, messages have the following advantages:

1. Comments are provided by the source code's author. Because of the lack of interaction with the author, the comments often don’t help readers to understand the source code. On the other hand, the message can be made by either the author or by the reader, who can help others to make understand and can also ask others for help;

2. A piece of code might be called more than one place, and could have different flow and output according to different input. If there are too many comments and too little code, it will become difficult for the reader to decipher. On the other hand, messages can be read separately; for example, a topic and it's replies can discuss a piece of code's running process, another topic and it's replies can point out and fix the same piece of code's bugs;

3. The comments only include text; but, messages can contain text, images, a patch of code, or position in another project to explain the code with text, images, create patches to fix bugs; and make the logic relation of multiple related projects;

4. The messages have more abundant forms, except to be comments of source code, it can indicate a revision in the repository, or explain a modification in the repository; it can set up "road signs" in the function map, to point out the relationships between the codes.

During the development, the annotated code may be modified or deleted. This may cause the messages pointing to the wrong locations. To prevent this situation, an annotation message in fact is related to the source code's subversion/git repository's position, and will be adjusted its new position after the modification, if needed. If we extract the messages, it is a recall process, then the process of extracting messages recorded in different development phase and recall out at any moment, and adjust its new position if the code changed, we call it is a total recall process.

The annotation's code position calculation and adjustment is automatically completed by GTalkabout, without any artificial participation.