Skip to content
This repository was archived by the owner on Feb 28, 2023. It is now read-only.

Commit 520a6dd

Browse files
committed
Merge branch 'release/0351'
2 parents 1dabcf6 + 93b8f23 commit 520a6dd

39 files changed

Lines changed: 1777 additions & 620 deletions

CHANGELOG.md

Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
# Version 0351 - 2015/08/01
2+
3+
### Additions
4+
- Added authors' names to their avatars
5+
- Added functionality to load custom information about projects from a special file (Closes [#34](https://github.com/rm-code/logivi/issues/34))
6+
7+
### Fixes
8+
- Fixed [#37](https://github.com/rm-code/logivi/issues/37) - FilePanel can no longer be scrolled endlessly
9+
- Fixed [#36](https://github.com/rm-code/logivi/issues/36) - FilePanel can no longer be interacted with when it is hidden
10+
- Fixed [#24](https://github.com/rm-code/logivi/issues/24) - Use io.popen instead of os.execute to check for git
11+
- Fixed [#14](https://github.com/rm-code/logivi/issues/14) - Improved timeline for repos with less than 128 commits
12+
- Fixed timeline label being slightly off center
13+
- Fixed timeline label being drawn multiple times each frame
14+
15+
### Other Changes
16+
- Display a default string when no custom information about a project can be loaded
17+
18+
19+
# Version 0312 - 2015/04/20
20+
21+
### Additions
22+
- Added keybinding for easy exiting
23+
- Added selection screen
24+
- LoGiVi can keep track of multiple git logs
25+
- User can select which log to visualize on the selections screen
26+
- User can use "exit"-key to return to the selection screen
27+
- Log-selection list is scrollable with the mouse wheel
28+
- Added watch button which takes the user to the visualization of the selected log
29+
- Added example log which will be written to the save directory if no logs are found
30+
- Added option to specify a custom color for a file extension in the config file
31+
- Git logs can now be created from within LoGiVi (Closes [#3](https://github.com/rm-code/logivi/issues/3))
32+
- The user can specify the path to a local repository in the config file
33+
- LoGiVi will automatically create a log and load this repository on start
34+
- Information about the repository will be automatically written to the project folder (first commit, latest commit, total number of commits)
35+
- This currently doesn't work on Windows (See [#28](https://github.com/rm-code/logivi/issues/28))
36+
- Information is displayed on the info panel
37+
- Added a refresh button to the SelectionScreen's info panel, which can be used to update the selected log
38+
- Added function to sort files based on their extension while placing them around their folder node (Closes [#22](https://github.com/rm-code/logivi/issues/22))
39+
- Added button to SelectionScreen which opens the save directory
40+
- Added tooltips
41+
- Added custom colors for links between authors and files
42+
- Added new high quality sprites (Closes [#17](https://github.com/rm-code/logivi/issues/17))
43+
- Added config file validation after it has been loaded (Closes [#26](https://github.com/rm-code/logivi/issues/26))
44+
45+
### Fixes
46+
- Fixed [#33](https://github.com/rm-code/logivi/issues/33) - Ignore lines in config file which aren't formatted correctly
47+
- Fixed [#32](https://github.com/rm-code/logivi/issues/32) - Resize Timeline when MainScreen is resized
48+
- Fixed [#31](https://github.com/rm-code/logivi/issues/31) - Directly pass the repository's path to the git command
49+
- Fixed [#30](https://github.com/rm-code/logivi/issues/30) - Ignore files when no changes were applied
50+
- Fixed [#29](https://github.com/rm-code/logivi/issues/29) - Reset the FileManager when MainScreen is closed
51+
- Fixed [#27](https://github.com/rm-code/logivi/issues/27) - Replace escape characters in the path to a repository
52+
- Fixed [#23](https://github.com/rm-code/logivi/issues/23) - Increase speed at which example is written to the harddrive
53+
- Fixed [#20](https://github.com/rm-code/logivi/issues/20) - Center the screen when it is resized in the config
54+
- Fixed [#19](https://github.com/rm-code/logivi/issues/19) - Allow multiple key bindings
55+
- Fixed [#5](https://github.com/rm-code/logivi/issues/5) - Improve author movement
56+
- Fixed crash when the file list wasn't updated after creating the example
57+
58+
### Other Changes
59+
- Updated the warning message which is displayed when no logs are found
60+
- Logs are now located in the 'logs' subfolder in the save directory of LoGiVi
61+
- Reduced time before authors start fading
62+
- Config file now uses a custom format based on ini-files
63+
64+
# Version 0204 - 2015/04/10
65+
66+
### Additions
67+
- Added option to set the visibility of folder labels in the config file
68+
- Added keybinding for hiding / unhiding folder labels while LoGiVi is running
69+
- Added keybinding for pausing the automatic commit loading
70+
- Added keybinding for manually loading the next commit
71+
- Added keybinding for manually loading the previous commit
72+
- Added keybinding for rewersing the graph creation (will run back until it reaches the first commit)
73+
- Added keybinding for toggling fullscreen mode
74+
- Added a timeline
75+
- Indicates the current position of the log compared to the total commit history and shows the date of the currently indexed commit
76+
- Allows the user to quickly jump around in time (forward and backwards) while still rendering the full graph (Closes [#10](https://github.com/rm-code/logivi/issues/10))
77+
- Can be hidden via keybinding or in the config file
78+
- Added option to the config file which makes the visualisation start at the end of the git log (so it starts with the newest commit and moves towards the oldest)
79+
- Added option to disable autoplay in the config file
80+
81+
### Fixes
82+
- Fixed [#18](https://github.com/rm-code/logivi/issues/18) - Prevents crash when no git log is found
83+
- Fixed [#15](https://github.com/rm-code/logivi/issues/15) - Files no longer overlap folder labels
84+
- Fixed [#13](https://github.com/rm-code/logivi/issues/13) - Links between authors and files will fade after a certain period of inactivity
85+
86+
### Other Changes
87+
- Labels now use the folder's name instead of its path
88+
- Config is now set to use the fullscreen mode by default
89+
- Increased width of the "beam" between authors and files
90+
- Files list is now sorted by the amount of files of the same extension (Closes [#14](https://github.com/rm-code/logivi/issues/14))
91+
- Files now are marked with different colors depending on the applied git modifier (addition = green, modification = orange, deletion = red)
92+
93+
---
94+
95+
# Version 0142 - 2015/04/01
96+
97+
### Additions
98+
- Added more options to the logivi config file
99+
- Added ui panel which can be moved, resized and scrolled which now contains the file list
100+
- Added keybindings for camera controls to the config file
101+
- Added option to hide commit authors in the config file
102+
- Added keybinding to hide / unhide commit authors while LoGiVi is running
103+
- Added option to set the speed at which commits are loaded in the config file
104+
- Added option to set the width of the graph's edges in the config file
105+
- Added option to set visibility of the file panel in the config file
106+
- Added keybinding to hide / unhide the file panel while LoGiVi is running
107+
- Added labels which are drawn next to their respective node
108+
109+
### Fixes
110+
- Fixed [#9](https://github.com/rm-code/logivi/issues/9) - Use radius of a node in mass calculation to make sure small nodes get pushed away far enough from bigger nodes
111+
- Fixed [#8](https://github.com/rm-code/logivi/issues/8) - Prevent crash when trying to modify a file which doesn't exist (anymore)
112+
- Fixed [#7](https://github.com/rm-code/logivi/issues/7) - Parents are removed correctly if they became empty after their last child had been removed
113+
- Fixed [#6](https://github.com/rm-code/logivi/issues/6) - Avatars no longer rotate with the camera
114+
- Fixed [#2](https://github.com/rm-code/logivi/issues/2) - Edges are removed correctly when a node is killed
115+
116+
### Other Changes
117+
- Updated message box when no git log is found and added a button to directly open the logivi wiki
118+
- Improved graph layout by tweaking the mass calculation and charge of each node (edges should now be shorter which reduces the total size of the graph)
119+
- Increased width of the graph's edges
120+
- Replaced old movement code for authors with physical based approach (Closes [#5](https://github.com/rm-code/logivi/issues/5))
121+
122+
---
123+
124+
# Version 0104 - 2015/03/30
125+
126+
### Additions
127+
- Added debug information about the user's system and supported features of the LÖVE framework which will be printed to the console
128+
- Added configuration file reader which will contain all options for LoGiVi
129+
- This means we can get rid of the _aliases_ and _avatars_ files since they now are bundled in the config file
130+
- Added option to set a background color in the configuration file
131+
- Added option for setting a resolution in the configuration file
132+
- Added possibility use local images as avatars
133+
- Added counter for the total amount of files
134+
- Added SpriteBatch to draw file sprites
135+
- Added higher quality file sprites
136+
- Added a proper force directed layout which uses attraction and repulsion forces between all nodes of the graph
137+
- Added manual camera controls (Closes [#1](https://github.com/rm-code/logivi/issues/1))
138+
139+
### Removals
140+
- Removed folder node sprites, which were located at the center of each folder node
141+
142+
### Fixes
143+
- Fixed [#3](https://github.com/rm-code/logivi/commit/0060125b03ceb5c31d57a4bed4cadeaf98140785) (From Bitbucket) - Files which use multiple full stops are logged correctly now
144+
- Fixed [#2](https://github.com/rm-code/logivi/commit/a7ebb57bd77c5355fc92233be0633ad012a24dba) (From Bitbucket) - Catch error when trying to access an invalid file
145+
- Closed [#1](https://github.com/rm-code/logivi/commit/7dcee77a168b1267ec6b8d0abce9a3eb8c714583) (From Bitbucket) - Removed box2d remnants
146+
147+
### Other Changes
148+
- Rewrote most of the graph system
149+
- The graph is structured and handled completely different than before with files, folder nodes and edges being independent from each other
150+
- Gets rid of a lot of issues like edges overlaying other nodes
151+
- The arrangement of files around folder nodes is no longer updated every frame
152+
- Major improvements in memory usage, performance and garbage production
153+
- Updated log reader to separate commits based on the author tag instead of looking for the "special" logivi_commit tag (which was pretty useless anyway)
154+
- Updated log reader to digest unix timestamps and transform them into human readable dates
155+
- Updated arrangement of file nodes to make them fill up the empty space where the folder nodes used to be
156+
- Updated AuthorManager to write user avatars to a subfolder in the save-directory
157+
- Authors circle the node instead of moving around randomly
158+
- Authors are logged based on their email addresses _and_ their nicknames
159+
- Update FileManager to ignore the case of a file extension
160+
- Debug information is hidden by default, but can be toggled via the F1-Key
161+
- Repositioned file list
162+
- Reduce memory usage by storing date as a string instead of as a table
163+
- Extended debug information
164+
165+
---
166+
167+
# Version 0052 - 2015/01/18
168+
169+
### Additions
170+
- Added (rudimentary) Force-Directed Graph which - visualises the files and folders of a git repository at a given point in time
171+
- Files are represented as evenly distributed leaves around their parent folder node
172+
- Depending on the amount of files in one folder new folders will be created automatically)
173+
- Modified files are coloured red and fade back to their original color over time
174+
- Folders are represented as single green dots (this will be changed in one of the next releases) and are connected by lines
175+
- Added list of all authors contributing to the project
176+
- Added list of all file extensions found in the project
177+
- Added colouring of file nodes based on their file extensions
178+
- Added camera which keeps tracking the generated graph automatically
179+
- Added floating authors
180+
- Authors will show links to the files they currently edit
181+
- Authors can be assigned an alias
182+
- Authors can be assigned an avatar (grabbed online)
183+
- Added warning message if no log file can be found

README.md

Lines changed: 50 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,52 @@
1-
# LoGiVi
2-
3-
LoGiVi is a git-repository visualisation tool inspired by [Gource](https://code.google.com/p/gource/) and __currently in development__. It was written from scratch using [Lua](http://www.lua.org/) and the [LÖVE](https://love2d.org/) framework.
4-
5-
# Instructions
6-
When you run LoGiVi for the first time it will set up all necessary folders, an example git log and a config file in the save directory on your harddrive. A dialog will pop up which allows you to view the save directory.
7-
8-
## Generating git logs automatically
9-
LoGiVi can generate git logs automatically when you specify a path to a git repository on your harddrive. Open the _settings.cfg_ file in the LoGiVi save directory and look for the _[repositories]_ section. Add the absolute path to the folder containing the git repository like this:
10-
11-
```
1+
# LoGiVi
2+
3+
LoGiVi is a git-repository visualisation tool inspired by [Gource](https://code.google.com/p/gource/) and __currently in development__. It was written from scratch using [Lua](http://www.lua.org/) and the [LÖVE](https://love2d.org/) framework.
4+
5+
![Example Visualization](https://github.com/rm-code/logivi/wiki/media/logivi_0312.gif)
6+
7+
# Instructions
8+
When you run LoGiVi for the first time it will set up all necessary folders, an example git log and a config file in the save directory on your harddrive. A dialog will pop up which allows you to view the save directory.
9+
10+
## Generating git logs automatically
11+
LoGiVi can generate git logs automatically when you specify a path to a git repository on your harddrive. Open the _settings.cfg_ file in the LoGiVi save directory and look for the _[repositories]_ section. Add the absolute path to the folder containing the git repository like this:
12+
13+
```
1214
[repositories]
13-
logivi = /Users/Robert/Coding/Lua/LÖVE/LoGiVi/
14-
```
15-
The name on the left side of the equals sign will be used as the project name to identify this repository so make sure you use unique names here.
16-
17-
LoGiVi can also handle Windows paths:
18-
19-
```
15+
logivi = /Users/Robert/Coding/Lua/LÖVE/LoGiVi/
16+
```
17+
The name on the left side of the equals sign will be used as the project name to identify this repository so make sure you use unique names here.
18+
19+
LoGiVi can also handle Windows paths:
20+
21+
```
2022
[repositories]
21-
logivi = C:\Users\rmcode\Documents\Coding Projects\LoGiVi\
22-
```
23-
After you have added the paths of your project to the config file, the log and info files will be created the next time you run LoGiVi (this may take a few seconds depending on how large the repositories are).
24-
25-
## Generating git logs manually
26-
If you don't want the logs to be generated automatically, or if you don't have git in your PATH, you can also generate the git logs manually.
27-
28-
Open your terminal and type in the following command (replace the path with your own path leading to a git repository):
29-
30-
```bash
31-
git -C "Path/To/Your/Repository" log --reverse --numstat --pretty=format:"info: %an|%ae|%ct" --name-status --no-merges > log.txt
32-
```
33-
This will create the file _log.txt_ in the folder you are currently in. Take this newly created file and drop it into a folder in the _logs_ subfolder in the LoGiVi save directory:
34-
35-
```
36-
/Users/Robert/Library/Application Support/LOVE/rmcode_LoGiVi/logs/yourProject/log.txt
37-
```
38-
LoGiVi will use the folder's name to identify the log so make it informative.
39-
40-
# License
41-
42-
The MIT License (MIT)
43-
44-
Copyright (c) 2014 - 2015 Robert Machmer
45-
46-
Permission is hereby granted, free of charge, to any person obtaining a copy
47-
of this software and associated documentation files (the "Software"), to deal
48-
in the Software without restriction, including without limitation the rights
49-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
50-
copies of the Software, and to permit persons to whom the Software is
51-
furnished to do so, subject to the following conditions:
52-
53-
The above copyright notice and this permission notice shall be included in all
54-
copies or substantial portions of the Software.
55-
56-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
57-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
58-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
59-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
60-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
61-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
62-
SOFTWARE.
23+
logivi = C:\Users\rmcode\Documents\Coding Projects\LoGiVi\
24+
```
25+
After you have added the paths of your project to the config file, the log and info files will be created the next time you run LoGiVi (this may take a few seconds depending on how large the repositories are).
26+
27+
## Generating git logs manually
28+
If you don't want the logs to be generated automatically, or if you don't have git in your PATH, you can also generate the git logs manually.
29+
30+
Open your terminal and type in the following command (replace the path with your own path leading to a git repository):
31+
32+
```bash
33+
git -C "Path/To/Your/Repository" log --reverse --numstat --pretty=format:"info: %an|%ae|%ct" --name-status --no-merges > log.txt
34+
```
35+
This will create the file _log.txt_ in the folder you are currently in. Take this newly created file and drop it into a folder in the _logs_ subfolder in the LoGiVi save directory:
36+
37+
```
38+
/Users/Robert/Library/Application Support/LOVE/rmcode_LoGiVi/logs/yourProject/log.txt
39+
```
40+
LoGiVi will use the folder's name to identify the log so make it informative.
41+
42+
# License
43+
44+
The MIT License (MIT)
45+
46+
Copyright (c) 2014 - 2015 Robert Machmer
47+
48+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
49+
50+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
51+
52+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

conf.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
local PROJECT_TITLE = "LoGiVi";
2424

25-
local PROJECT_VERSION = "0312";
25+
local PROJECT_VERSION = "0351";
2626

2727
local PROJECT_IDENTITY = "rmcode_LoGiVi";
2828

res/img/step.png

683 Bytes
Loading

res/templates/settings.cfg

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,6 @@
22
; LoGiVi - Configuration File
33
; -------------------------------
44

5-
[aliases]
6-
; email = author
7-
8-
[avatars]
9-
; author = urlToAvatar
10-
11-
[colors]
12-
; .lua = 255, 0, 0
13-
145
[repositories]
156
; project = path/to/repository
167

0 commit comments

Comments
 (0)