██████╗ ███████╗██████╗ ██████╗ ██████╗ ██╗ ██╗███╗ ███╗██████╗ ██╔══██╗██╔════╝██╔══██╗██╔═══██╗ ██╔══██╗██║ ██║████╗ ████║██╔══██╗ ██████╔╝█████╗ ██████╔╝██║ ██║ ██║ ██║██║ ██║██╔████╔██║██████╔╝ ██╔══██╗██╔══╝ ██╔═══╝ ██║ ██║ ██║ ██║██║ ██║██║╚██╔╝██║██╔═══╝ ██║ ██║███████╗██║ ╚██████╔╝ ██████╔╝╚██████╔╝██║ ╚═╝ ██║██║ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝
A powerful Rust-based tool for analyzing and dumping source code from project directories. This tool automatically detects project technologies, generates directory trees, and creates comprehensive source code dumps.
-
🔍 Automatic Technology Detection
- Supports multiple programming languages and frameworks
- Smart detection of project structure and dependencies
- Extensible technology indicators
-
📁 Directory Tree Generation
- Beautiful ASCII tree visualization
- Intelligent exclusion of unnecessary directories
- Customizable tree depth and format
-
🌐 Multilingual Support
- English and Vietnamese interfaces
- Easy to add more languages
- Consistent user experience across languages
-
🛠️ Smart File Handling
- Automatic file size limits
- Intelligent file type filtering
- Proper handling of binary and large files
-
📊 Comprehensive Output
- Detailed project structure
- Complete source code dump
- Statistics and summaries
- Rust 1.85.0 or higher
- Cargo (Rust's package manager)
# Clone the repository git clone https://github.com/haiphamcoder/repo-dump.git cd repo-dump # Build the project cargo build --release # The binary will be available at target/release/repo-dump
# Run with default settings (interactive mode) cargo run # Specify project path directly cargo run -- --path /path/to/project # Using the built binary ./target/release/repo-dump-rs --path /path/to/project
--path
,-p
: Specify the project path to analyze--help
: Show help message--version
: Show version information
- Select language (en/vi)
- Enter project path (or press Enter to use current directory)
- Wait for analysis to complete
- Find the output in
source_dump.txt
main
: Stable branch, contains production-ready codefeature-dev
: Integration branch for features- Feature branches:
feature/*
for specific features
-
Create a new branch from
feature-dev
:git checkout feature-dev git pull git checkout -b feature/your-feature-name
-
Make your changes and commit:
git add . git commit -m "feat: add new feature"
-
Push and create a Pull Request:
git push origin feature/your-feature-name
-
After review and approval, your PR will be merged into
feature-dev
-
When ready for release,
feature-dev
will be merged intomain
We follow the Conventional Commits specification:
<type>(<scope>): <subject> <body> <footer>
Types:
feat
: New featurefix
: Bug fixdocs
: Documentation changesstyle
: Code style changes (formatting, etc)refactor
: Code refactoringtest
: Adding/updating testschore
: Maintenance tasks
Example:
feat(tech-detection): add support for Rust projects - Add Rust-specific file patterns - Implement Rust project detection - Add tests for Rust detection Closes #123
- Use the PR template
- Link related issues
- Keep PRs focused and small
- Update documentation
- Add tests if needed
- Follow the commit message guidelines
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by various code analysis tools
- Built with Rust's excellent ecosystem
- Thanks to all contributors
For support, please:
- Open an issue on GitHub
- Check the documentation
- Contact the maintainers