128 lines
3.3 KiB
Markdown
128 lines
3.3 KiB
Markdown
# Git Repository Setup - GWEncoder v3.0
|
|
|
|
## 📁 Repository Structure
|
|
|
|
```
|
|
GWUTILZ/
|
|
├── .git/ # Git repository data
|
|
├── .gitignore # Git ignore rules
|
|
├── gwutils/ # Shared utilities package
|
|
│ ├── common.go # Common functions
|
|
│ ├── config.go # Configuration structures
|
|
│ └── go.mod # Package module
|
|
├── gwencoder/ # Unified encoder application
|
|
│ ├── main.go # Main application code
|
|
│ └── go.mod # Application module
|
|
├── README.md # Project documentation
|
|
├── CHANGELOG.md # Project history
|
|
├── CONSOLIDATION_SUMMARY.md # Consolidation details
|
|
├── ENCODING_TEST_RESULTS.md # Test results
|
|
├── GIT_SETUP.md # This file
|
|
├── build.sh # Build script
|
|
└── test_encoding.sh # Test script
|
|
```
|
|
|
|
## 🌿 Git Branches
|
|
|
|
- **main** - Production branch with stable releases
|
|
- **development** - Development branch for new features
|
|
|
|
## 📝 Commit History
|
|
|
|
```
|
|
* 9d41c91 Update .gitignore - Exclude test files and binaries
|
|
* 471590f Add CHANGELOG.md - Document project history and consolidation details
|
|
* 47e73ca Initial commit: GWEncoder v3.0 - Unified Video Encoding Tool
|
|
```
|
|
|
|
## 🔧 Git Configuration
|
|
|
|
```bash
|
|
# Repository configuration
|
|
git config user.name "GWEncoder Developer"
|
|
git config user.email "developer@gwencoder.local"
|
|
|
|
# Branch configuration
|
|
git config init.defaultBranch main
|
|
```
|
|
|
|
## 📋 .gitignore Rules
|
|
|
|
### Excluded Files:
|
|
- Compiled binaries (`/gwencoder/gwencoder`, `/gwencoder/main`)
|
|
- Test files (`testvid.webm`)
|
|
- Output files (`*-AV1-*-GWELL.*`)
|
|
- Log files (`*.log`, `gwencoder_log.txt`)
|
|
- Configuration files (`gwencoder_config.json`)
|
|
- Temporary files (`*.tmp`, `*.temp`)
|
|
- IDE files (`.vscode/`, `.idea/`)
|
|
- OS files (`.DS_Store`, `Thumbs.db`)
|
|
|
|
### Included Files:
|
|
- Source code (`.go` files)
|
|
- Documentation (`.md` files)
|
|
- Build scripts (`build.sh`, `test_encoding.sh`)
|
|
- Module files (`go.mod`)
|
|
|
|
## 🚀 Quick Git Commands
|
|
|
|
```bash
|
|
# Check status
|
|
git status
|
|
|
|
# View commit history
|
|
git log --oneline --graph
|
|
|
|
# Switch branches
|
|
git checkout main
|
|
git checkout development
|
|
|
|
# Create new branch
|
|
git checkout -b feature/new-feature
|
|
|
|
# Add and commit changes
|
|
git add .
|
|
git commit -m "Descriptive commit message"
|
|
|
|
# View differences
|
|
git diff
|
|
|
|
# View file history
|
|
git log --follow filename
|
|
```
|
|
|
|
## 📊 Repository Statistics
|
|
|
|
- **Total Commits**: 3
|
|
- **Files Tracked**: 12
|
|
- **Lines of Code**: ~1,700
|
|
- **Branches**: 2 (main, development)
|
|
- **Tags**: 0 (ready for v3.0.0 tag)
|
|
|
|
## 🏷️ Ready for Tagging
|
|
|
|
The repository is ready for the first release tag:
|
|
|
|
```bash
|
|
git tag -a v3.0.0 -m "GWEncoder v3.0.0 - Initial Release"
|
|
git push origin v3.0.0
|
|
```
|
|
|
|
## 🔄 Development Workflow
|
|
|
|
1. **Feature Development**: Work on `development` branch
|
|
2. **Testing**: Test all modes with various video files
|
|
3. **Documentation**: Update README, CHANGELOG as needed
|
|
4. **Release**: Merge to `main` and create tag
|
|
5. **Maintenance**: Bug fixes and improvements
|
|
|
|
## 📈 Future Enhancements
|
|
|
|
The git repository is set up to support:
|
|
- Feature branches for new encoding modes
|
|
- Hotfix branches for bug fixes
|
|
- Release branches for version management
|
|
- Automated testing and CI/CD integration
|
|
- Code review workflows
|
|
- Issue tracking integration
|