CodeKeeper is a lightweight version control application tailored for small teams of developers. It provides an easy-to-use command-line interface for managing file versions, resolving conflicts, and tracking changes. CodeKeeper is designed to operate with a central repository for streamlined collaboration and efficiency.
-
Initialize Repository
- Set up a new central repository.
- Automatically creates essential directories (
.keep
,.versions
, etc.). - Checks if the repository is already initialized to prevent duplication.
-
File Versioning
- Commit files or entire directories using wildcards (
*.*
,.
). - Maintain a history of commits with GUIDs, timestamps, and file paths.
- Commit files or entire directories using wildcards (
-
Conflict Detection and Resolution
- Check for conflicts in files against the latest committed version.
- Resolve conflicts by providing a resolution file.
-
Branching and Merging
- Create branches for isolated development.
- Merge changes from two branches with automatic conflict detection.
-
History and Rollback
- View the history of commits, including GUIDs, timestamps, and file details.
- Rollback a file or repository to a specific version or commit.
-
Archiving
- Archive the
.versions
directory for backup or storage.
- Archive the
-
Authentication
- Ensure that only authorized users can perform certain actions (e.g., commit, resolve conflicts).
- Operating System: Linux (requires
sudo
for certain operations). - Dependencies: C++ Standard Library and
filesystem
support. - Optional Tools:
zip
(for archiving).
-
Clone the repository:
git clone <repository-url> cd CodeKeeper
-
Compile the application:
g++ -std=c++17 -o codekeeper codekeeper.cpp
-
Move the compiled binary to a directory in your PATH (e.g.,
/usr/local/bin
):sudo mv codekeeper /usr/local/bin/
codekeeper --help
-
Initialize Repository
sudo codekeeper init <project_name>
-
Commit Files
codekeeper commit "<commit_message>" <file1> <file2> ...
Use
.
or*.*
to commit all files in the current directory. -
View History
codekeeper history
-
Rollback
codekeeper rollback <file|commit_guid>
-
Check for Conflicts
codekeeper conflicts <file>
-
Resolve Conflict
codekeeper resolve <file> <resolution_file>
-
Create a Branch
codekeeper branch <branch_name>
-
Merge Branches
codekeeper merge <branch1> <branch2>
-
Archive Versions
codekeeper archive
- The central repository path is configured in
/usr/bin/codekeeper/codekeeper_config
. - Ensure the
.keep
directory and other project files are correctly created within the central origin path.
Contributions to CodeKeeper are welcome! If you'd like to improve the application or report issues, please create a pull request or open an issue on GitHub.