| cli | |
| include | |
| AddCommand.hxx | Declaration of the AddCommand class |
| BaseCommand.hxx | Declaration of the BaseCommand class for all commands in the system |
| BranchCommand.hxx | Declaration of the BranchCommand class for managing branches |
| ClearCommand.hxx | Declaration of the ClearCommand class for removing SVCS repository |
| CommandFactory.hxx | Declaration of the CommandFactory class, which implements the Factory pattern for commands |
| HelpCommand.hxx | Declaration of the HelpCommand class for displaying command help information |
| HelpService.hxx | Service for providing help information about commands |
| HistoryCommand.hxx | Declaration of the HistoryCommand class for viewing save history (commits) |
| ICommand.hxx | Declaration of the ICommand interface for all executable CLI commands |
| InitCommand.hxx | Declaration of the InitCommand class |
| MergeCommand.hxx | Declaration of the MergeCommand for merging branches |
| RemoveCommand.hxx | Declaration of the RemoveCommand class for removing files from staging area |
| SaveCommand.hxx | Declaration of the SaveCommand class for saving (committing) staged changes |
| StatusCommand.hxx | Declaration of the StatusCommand class for showing repository status |
| UndoCommand.hxx | Declaration of the UndoCommand class for reverting changes |
| Utils.hxx | Utility functions for conditional debugging output |
| VersionCommand.hxx | Declaration of the VersionCommand class for displaying version information |
| src | |
| AddCommand.cxx | Implementation of the AddCommand class, responsible for processing the 'svcs add' command and staging files for the next commit |
| BranchCommand.cxx | Implementation of the BranchCommand for managing branches |
| ClearCommand.cxx | Implementation of the ClearCommand class for removing SVCS repository |
| CommandFactory.cxx | Implementation of the CommandFactory class, which is responsible for dynamically creating ICommand objects and managing their lifecycle and dependencies |
| HelpCommand.cxx | Implementation of the HelpCommand class |
| HelpService.cxx | Implementation of the HelpService class |
| HistoryCommand.cxx | Implementation of the HistoryCommand class |
| InitCommand.cxx | Implementation of the InitCommand class, responsible for processing the 'svcs init' command and initializing a new SVCS repository |
| MergeCommand.cxx | Implementation of the MergeCommand for merging branches |
| RemoveCommand.cxx | Implementation of the RemoveCommand class for removing files from staging area |
| SaveCommand.cxx | Implementation of the SaveCommand class |
| StatusCommand.cxx | Implementation of the StatusCommand class |
| UndoCommand.cxx | Implementation of the UndoCommand class |
| VersionCommand.cxx | Implementation of the VersionCommand class |
| core | |
| include | |
| Blob.hxx | Defines the Blob class, which represents raw file content in the VCS object database |
| BranchManager.hxx | Declaration of the BranchManager class for handling version control branches |
| Commit.hxx | Defines the Commit class, representing a permanent snapshot in the VCS history |
| Index.hxx | Definition of IndexEntry data structure and Index struct |
| ObjectStorage.hxx | Manages the reading, writing, and lifecycle of VCS objects on the disk using the Git format |
| Repository.hxx | Manages the entire version control repository, acts as a Subject for event logging, and controls all major VCS operations |
| RepositoryManager.hxx | Declaration of the RepositoryManager class, managing all repository-level file operations |
| Tree.hxx | Defines the Tree class, which represents the hierarchical structure (directory state) of a VCS repository |
| Utils.hxx | Defines utility functions for core of SVCS |
| VcsObject.hxx | Definition of the abstract base class for all Version Control System objects |
| src | |
| Blob.cxx | Implementation of the Blob class, a core SVCS object for file content storage |
| BranchManager.cxx | Implementation of the BranchManager class |
| Commit.cxx | Implementation of the Commit class, representing a history snapshot in the SVCS |
| Index.cxx | Implementation of the Index class, managing the staging area and building the commit tree |
| ObjectStorage.cxx | Implementation of the ObjectStorage class, managing the storage and retrieval of compressed VcsObject objects |
| Repository.cxx | Implementation of the Repository class, which serves as the main application facade and core logic for the VCS |
| RepositoryManager.cxx | Implementation of the RepositoryManager class, handling high-level repository creation, initialization, and cleanup utilities |
| Tree.cxx | Implementation of the Tree class, which represents a directory structure in the SVCS and maps names to object hashes |
| Utils.cxx | Implementation of general utility functions for file I/O and hash format conversion |
| integration | |
| include | |
| CompositeCommandFactory.hxx | Composite factory that combines multiple command factories |
| src | |
| CompositeCommandFactory.cxx | Implementation of the CompositeCommandFactory class |
| main.cxx | |
| platform | |
| include | |
| NetworkUtils.hxx | Cross-platform network utilities |
| server | |
| include | |
| HubCommand.hxx | Declaration of the HubCommand class for creating central bare repositories |
| RemoteManager.hxx | Declaration of the RemoteManager class and Remote struct |
| RemoteProtocol.hxx | Declaration of the RemoteProtocol class for handling remote communication protocol |
| RepoCommand.hxx | Declaration of the RepoCommand class |
| Server.hxx | Main server component for handling incoming Git connections |
| ServerBaseCommand.hxx | Base class for server administration commands using ICommand interface |
| ServerCommandFactory.hxx | Declaration of the ServerCommandFactory class for server administration commands |
| SSHConfig.hxx | SSH server configuration |
| SSHServer.hxx | SSH server for SVCS remote operations |
| SSHSession.hxx | SSH session handler |
| src | |
| HubCommand.cxx | Implementation of the HubCommand class for creating bare repositories |
| RemoteManager.cxx | Implementation of the RemoteManager class |
| RemoteProtocol.cxx | Implementation of the RemoteProtocol class for remote communication protocol |
| RepoCommand.cxx | Implementation of the RepoCommand class for managing remote configurations |
| Server.cxx | Implementation of the Server class for SVCS remote operations |
| ServerBaseCommand.cxx | Implementation of ServerBaseCommand class |
| ServerCommandFactory.cxx | Implementation of the ServerCommandFactory class |
| SSHConfig.cxx | SSH configuration implementation |
| SSHServer.cxx | Implementation of the SSHServer class for SVCS remote operations over SSH |
| SSHSession.cxx | |
| services | |
| logging | |
| Logger.cxx | Implementation of the Logger class for thread-safe logging system |
| Logger.hxx | Defines the Logger class, a thread-safe Singleton that acts as an IObserver |
| Event.hxx | Defines the event structure used for the Observer pattern notifications |
| EventBus.hxx | Implementation of the central event bus (EventBus), acting as the ISubject |
| IObserver.hxx | Defines the interface for the Observer pattern component |
| ISubject.hxx | Defines the interface for the Subject (Publisher) component of the Observer pattern |
| tests | |
| cli | |
| mocks | |
| MockHelpService.hxx | Mock implementation of the HelpService interface for unit testing purposes |
| MockHelpServiceAdapter.hxx | |
| MockSubject.hxx | Mock implementation of the ISubject interface for unit testing purposes |
| utils | |
| ClearCommandTest.cxx | Tests for the 'clear' command. Implementation of the ClearCommandTest test fixture methods |
| ClearCommandTest.hxx | Declaration of the test fixture for ClearCommand integration tests |
| InitCommandIntegrationTest.cxx | Integration tests for the 'init' command (InitCommand) and the RepositoryManager |
| InitCommandIntegrationTest.hxx | Declaration of the test fixture for InitCommand integration tests |
| IntAddCommandTest.cxx | Implementation of the AddCommandTest integration test fixture |
| IntAddCommandTest.hxx | |
| IntHelpCommandTest.hxx | |
| IntHistoryCommandTest.cxx | Implementation of the integration tests for the HistoryCommand class |
| IntHistoryCommandTest.hxx | Test fixture header for integration tests of the HistoryCommand class |
| IntRemoveCommandTest.cxx | Implementation of integration tests for the RemoveCommand class |
| IntRemoveCommandTest.hxx | Test fixture header for integration tests of the RemoveCommand class |
| IntSaveCommandTest.cxx | Implementation of integration tests for the SaveCommand class |
| IntSaveCommandTest.hxx | Test fixture header for integration tests of the SaveCommand (commit) class |
| IntStatusCommandTest.cxx | Implementation of the integration tests for the StatusCommand class |
| IntStatusCommandTest.hxx | Test fixture header for integration tests of the StatusCommand class |
| IntUndoCommandTest.cxx | Implementation of integration tests for the UndoCommand class, focusing on forced operations |
| IntUndoCommandTest.hxx | Test fixture header for integration tests of the UndoCommand class |
| IntVersionCommandTest.cxx | Implementation of integration tests for the VersionCommand class |
| IntVersionCommandTest.hxx | Test fixture header for integration tests of the VersionCommand class |
| AddCommandTest.cxx | Tests for the 'add' command (AddCommand) using Google Test |
| ClearCommandTest.cxx | Tests for the 'clear' command (ClearCommand) using Google Test |
| HelpCommandTest.cxx | Unit tests for the HelpCommand class |
| HistoryCommandTest.cxx | Integration tests for the HistoryCommand class, covering core functionality, format options, limit handling, and argument validation |
| InitCommandTest.cxx | Implementation of the InitCommandIntegrationTest fixture methods |
| SaveCommandTest.cxx | Integration tests for the SaveCommand (commit) class |
| StatusCommandTest.cxx | Integration tests for the StatusCommand class |
| VersionCommandTest.cxx | Unit tests for the VersionCommand class |
| core | |
| utils | |
| MockSubject.hxx | Mock implementation of ISubject for testing purposes |
| BlobTest.cxx | Unit tests for the Blob class, verifying object construction, hash calculation, and data integrity |
| BranchManagerTest.cxx | Implementation of unit tests for the BranchManager class |
| CommitTest.cxx | Unit tests for the Commit class, verifying object construction, hash stability (parent order), and serialization/deserialization integrity |
| IndexTest.cxx | Unit tests for the Index class, verifying staging area management, file modification tracking, and index persistence |
| ObjectTest.cxx | Unit tests for the core hashing logic of the VcsObject abstract base class |
| RepoManagerTest.cxx | Unit tests for RepositoryManager class |
| RepositoryTest.cxx | Unit tests for the Repository class, covering initialization, filesystem structure creation, and Subject/Observer pattern implementation |
| StorageTest.cxx | Unit tests for the ObjectStorage class, verifying persistence, file path generation, compression, and object loading integrity for all VcsObject types (Blob, Tree, Commit) |
| TreeTest.cxx | Unit tests for the Tree class, verifying object construction, canonical sorting, entry management, and serialization/deserialization integrity |
| server | |
| RemoteProtocolTest.cxx | Google Tests for RemoteProtocol class |
| SSHServerTest.cxx | Unit tests for SSHServer class |
| SSHSessionTest.cxx | Unit tests for SSHSession class |