To create a lightweight and text-based solution that can replace services like GitLab or GitHub without the complexity of a full application, you can use a set of tools that combine version control, issue management, and kanban functionality in a simple way. Here is a proposed setup:
You can use Git to create bare repositories that are accessible remotely. A bare repository is a Git repository without a working directory, which is ideal for a remote server. To create a bare repository, you can use the following command:
git init --bare /path/to/repo.git
Then, you can clone this repository on other systems and work with it normally:
git clone user@server:/path/to/repo.git
To manage issues and a kanban board, you can use Markdown files. A simple structure could be having an issues
directory where each issue is a Markdown file:
issues/
├── issue_001.md
├── issue_002.md
└── issue_003.md
Each issue file can follow a format like this:
# Issue 001: Problem Description
## Details
- **Status**: Open
- **Priority**: High
- **Assigned to**: User
## Description
Here is the detailed description of the problem.
## Tasks
- [ ] Task 1
- [ ] Task 2
For the kanban board, you could have a kanban.md
file that simply lists the issues in different sections (To Do, In Progress, Done):
# Kanban Board
## To Do
- [ ] [Issue 001: Problem Description](./issues/issue_001.md)
- [ ] [Issue 002: Problem Description](./issues/issue_002.md)
## In Progress
- [ ] [Issue 003: Problem Description](./issues/issue_003.md)
## Done
- [ ] [Issue 004: Problem Description](./issues/issue_004.md)
Git has built-in functionalities for reviewing changes and performing merges. You can use branches to work on new features or fixes and then review them before merging into the main branch. For reviews and pull requests:
-
Create a new branch for your change:
git checkout -b feature/new-feature
-
Make your changes and commit:
git add . git commit -m "Added new feature"
-
Push your branch to the remote repository:
git push origin feature/new-feature
-
To perform a review, you can use a diff:
git diff main feature/new-feature
-
Finally, to merge the changes after review:
git checkout main git merge feature/new-feature
To simplify the workflow, you can create bash scripts to automate common tasks such as creating new issues, updating the kanban board, or generating diffs for reviews.
#!/bin/bash
read -p "Enter issue title: " title
id=$(date +%s)
filename="issues/issue_$id.md"
echo "# $title
## Details
- **Status**: Open
- **Priority**:
- **Assigned to**:
## Description
## Tasks
- [ ] " > $filename
echo "Issue created: $filename"
For viewing the Kanban board and managing issues in Markdown, you can use tools like:
- Dillinger: An online Markdown editor that can connect to Git repositories.
- Typora: A desktop Markdown editor.
- MkDocs: To generate static documentation based on Markdown.
This solution allows you to manage projects and collaborate using only text files and Git, without needing to install complex software or handle databases. It is ideal for small projects or for those who prefer a minimalist approach and total control over their tools.
There are several VS Code extensions that can help you implement and manage this text-based system and Git. Here are some recommendations:
This extension allows you to visualize and manage your Git history in a graphical way, which is useful for reviewing changes and performing merges.
Installation:
- Go to the Extensions tab in VS Code (
Ctrl+Shift+X
). - Search for
Git Graph
. - Click
Install
.
A powerful extension for working with Markdown files, providing features like preview, auto-formatting, and keyboard shortcuts.
Installation:
- Go to the Extensions tab in VS Code.
- Search for
Markdown All in One
. - Click
Install
.
This extension allows you to search and view TODOs and other tagged comments in your code, which can be useful for managing tasks within issues.
Installation:
- Go to the Extensions tab in VS Code.
- Search for
Todo Tree
. - Click
Install
.
This extension helps you manage multiple projects in VS Code, which is useful if you are working with several repositories.
Installation:
- Go to the Extensions tab in VS Code.
- Search for
Project Manager
. - Click
Install
.
An extension that enhances Git capabilities in VS Code, providing rich details about Git history, authors of specific lines of code, and more.
Installation:
- Go to the Extensions tab in VS Code.
- Search for
GitLens
. - Click
Install
.
Provides an advanced preview of Markdown files with support for diagrams and other visual elements.
Installation:
- Go to the Extensions tab in VS Code.
- Search for
Markdown Preview Enhanced
. - Click
Install
.
Once the extensions are installed, you can configure them to fit your workflow:
-
Configuring
Markdown All in One
:- Open VS Code settings (
Ctrl+,
). - Search for
markdown-all-in-one
. - Adjust the settings according to your needs, such as keyboard shortcuts and auto-formatting.
- Open VS Code settings (
-
Configuring
Git Graph
andGitLens
:- Open VS Code settings.
- Search for
git-graph
andgitlens
. - Adjust the settings to enable additional views and functionalities.
-
Creating and Managing Kanban Boards:
- Use the
Kanban
extension to create a board in a Markdown file. The structure of the file can be similar to the following:
- Use the
# Kanban Board
## To Do
- [ ] [Issue 001: Problem Description](./issues/issue_001.md)
- [ ] [Issue 002: Problem Description](./issues/issue_002.md)
## In Progress
- [ ] [Issue 003: Problem Description](./issues/issue_003.md)
## Done
- [ ] [Issue 004: Problem Description](./issues/issue_004.md)
-
Creating Issues:
- Use
Markdown All in One
to create new issues in Markdown format. - Use
Todo Tree
to list and manage tasks within the issues.
- Use
-
Viewing the Kanban Board:
- Use
Kanban
to view and update your Kanban board.
- Use
-
Managing Git:
- Use
Git Graph
andGitLens
to manage branches, commits, and merges.
- Use
-
Previewing Markdown:
- Use
Markdown Preview Enhanced
to preview your Markdown files.
- Use
With these extensions and configurations, you will have a working environment in VS Code that allows you to manage your project efficiently using text files and Git, without needing additional complex software.