|
1 | | -# Gitea |
| 1 | +# BlockCommit |
2 | 2 |
|
3 | | -[](https://github.com/go-gitea/gitea/actions/workflows/release-nightly.yml?query=branch%3Amain "Release Nightly") |
4 | | -[](https://discord.gg/Gitea "Join the Discord chat at https://discord.gg/Gitea") |
5 | | -[](https://goreportcard.com/report/code.gitea.io/gitea "Go Report Card") |
6 | | -[](https://pkg.go.dev/code.gitea.io/gitea "GoDoc") |
7 | | -[](https://github.com/go-gitea/gitea/releases/latest "GitHub release") |
8 | | -[](https://www.codetriage.com/go-gitea/gitea "Help Contribute to Open Source") |
9 | | -[](https://opencollective.com/gitea "Become a backer/sponsor of gitea") |
10 | | -[](https://opensource.org/licenses/MIT "License: MIT") |
11 | | -[](https://gitpod.io/#https://github.com/go-gitea/gitea) |
12 | | -[](https://translate.gitea.com "Crowdin") |
13 | | - |
14 | | -[繁體中文](./README.zh-tw.md) | [简体中文](./README.zh-cn.md) |
| 3 | +> A Git service designed specifically for Scratch visual programming projects, based on Gitea. |
| 4 | +
|
| 5 | +BlockCommit is an exclusive Git designed specifically for Scratch visual programming projects. Adapt to Scratch project file formats, provide easy-to-use version tracking, submission, and collaboration capabilities, allowing Scratch developers to easily implement project version management. |
| 6 | + |
| 7 | +**Topics**: git · backend · gitea · scratch · scratch3 · turbowarp |
| 8 | + |
| 9 | +## About |
| 10 | + |
| 11 | +BlockCommit is based on [Gitea](https://github.com/go-gitea/gitea) and provides specialized support for Scratch/TurboWarp `.sb3` project files: |
| 12 | + |
| 13 | +- **SB3 Project Support**: Native support for Scratch 3.0 project files with visual diff display |
| 14 | +- **Block-Level Diff**: Semantic diff visualization for Scratch blocks using ScratchBlocks syntax |
| 15 | +- **Multi-Language Support**: Available in multiple languages for international Scratch communities |
| 16 | +- **Easy Collaboration**: Seamless version control for Scratch projects |
| 17 | +- **Self-Hosted**: Deploy your own BlockCommit instance for privacy and control |
| 18 | + |
| 19 | +As BlockCommit is written in Go, it works across **all** the platforms and architectures that are supported by Go, including Linux, macOS, and Windows on x86, amd64, ARM and PowerPC architectures. |
| 20 | + |
| 21 | +## Features |
| 22 | + |
| 23 | +### Scratch Project Support |
| 24 | + |
| 25 | +- **SB3 File Parsing**: Automatic parsing and analysis of Scratch project files |
| 26 | +- **Visual Block Diff**: Display block changes in an intuitive visual format |
| 27 | +- **Script Tracking**: Track script additions, modifications, and deletions |
| 28 | +- **Asset Management**: Track changes to costumes, sounds, and other assets |
| 29 | +- **Variable & List Diff**: Monitor variable and list changes across versions |
| 30 | + |
| 31 | +### Core Git Features |
| 32 | + |
| 33 | +- Full Git integration with branch management, pull requests, and issue tracking |
| 34 | +- Collaborative code review and discussion |
| 35 | +- Wiki and project documentation |
| 36 | +- CI/CD integration with GitHub Actions compatibility |
| 37 | +- Team and organization management |
| 38 | + |
| 39 | +## Building |
| 40 | + |
| 41 | +From the root of the source tree, run: |
| 42 | + |
| 43 | + TAGS="bindata sqlite sqlite_unlock_notify" make build |
| 44 | + |
| 45 | +The `build` target is split into two sub-targets: |
| 46 | + |
| 47 | +- `make backend` which requires [Go Stable](https://go.dev/dl/), the required version is defined in [go.mod](/go.mod). |
| 48 | +- `make frontend` which requires [Node.js LTS](https://nodejs.org/en/download/) or greater and [pnpm](https://pnpm.io/installation). |
| 49 | + |
| 50 | +## Using |
| 51 | + |
| 52 | +After building, a binary file named `gitea` will be generated in the root of the source tree by default. To run it, use: |
| 53 | + |
| 54 | + ./gitea web |
| 55 | + |
| 56 | +Then access BlockCommit at `http://localhost:3000` (default port). |
| 57 | + |
| 58 | +## SB3 Diff Examples |
| 59 | + |
| 60 | +When viewing diffs for `.sb3` files, BlockCommit provides: |
| 61 | + |
| 62 | +- **Script Changes**: Visual display of added, modified, and deleted scripts |
| 63 | +- **Block-Level Diff**: Detailed view of individual block changes |
| 64 | +- **Summary Statistics**: Quick overview of project changes (targets, scripts, blocks, variables, etc.) |
| 65 | +- **Asset Tracking**: Changes to costumes, sounds, and other resources |
| 66 | + |
| 67 | +## Contributing |
| 68 | + |
| 69 | +Expected workflow is: Fork -> Patch -> Push -> Pull Request |
| 70 | + |
| 71 | +> [!NOTE] |
| 72 | +> |
| 73 | +> 1. **YOU MUST READ THE [CONTRIBUTORS GUIDE](CONTRIBUTING.md) BEFORE STARTING TO WORK ON A PULL REQUEST.** |
| 74 | +> 2. If you have found a vulnerability in the project, please write privately to the maintainer. |
| 75 | +
|
| 76 | +## Authors |
| 77 | + |
| 78 | +- **Maintainer**: [NeuronPulse](https://github.com/NeuronPulse) |
| 79 | +- **Original Project**: [Gitea](https://github.com/go-gitea/gitea) |
| 80 | + |
| 81 | +## License |
| 82 | + |
| 83 | +This project is licensed under the MIT License. |
| 84 | +See the [LICENSE](LICENSE) file for the full license text. |
| 85 | + |
| 86 | +## Acknowledgments |
| 87 | + |
| 88 | +BlockCommit is based on [Gitea](https://github.com/go-gitea/gitea), a community-managed lightweight code hosting solution written in Go. |
| 89 | + |
| 90 | +Thanks to: |
| 91 | +- The [Gitea](https://github.com/go-gitea/gitea) community for the excellent codebase |
| 92 | +- [scratchblocks](https://github.com/scratchblocks/scratchblocks) for block visualization |
| 93 | +- [parse-sb3-blocks](https://github.com/apple502j/parse-sb3-blocks) for SB3 parsing utilities |
15 | 94 |
|
16 | 95 | ## Purpose |
17 | 96 |
|
|
0 commit comments