tools/snapsync.git
7 years agoAdd support for ignoring blacklisted repositories 42/117842/7
Maciej Wereski [Tue, 7 Mar 2017 10:27:38 +0000 (11:27 +0100)]
Add support for ignoring blacklisted repositories

This change allows user to use blacklist file (default provided). Such
file is a list of regular expressions that describe git repositories
(one per line). Default blacklist file makes snapsync ignore profile
repositories.

Change-Id: I9c82ae82d7b17a4aeeccb18d1c3379a0a08cb37b
Signed-off-by: Maciej Wereski <m.wereski@partner.samsung.com>
7 years agoImplement comparison of commits 41/117841/7
Maciej Wereski [Fri, 3 Mar 2017 11:48:41 +0000 (12:48 +0100)]
Implement comparison of commits

Compare chronogically in terms of commit parent-child relation
between source and target commit. Result is saved in GitRepo.Status.
This information will be used to choose which repositories and
commits should be synchronized.

Change-Id: I08a8c4f26a2644712f72d9062055157349953425
Signed-off-by: Maciej Wereski <m.wereski@partner.samsung.com>
7 years agoUse configuration file 40/117840/6
Maciej Wereski [Fri, 3 Mar 2017 11:16:02 +0000 (12:16 +0100)]
Use configuration file

Snapsync will use ini-style configuration (with use of
go-ini package). Settings are divided in two sections:
* Repos - all settings for RPM and git repositories - i.e. addresses,
  profiles
* General - other settings (currently git manager settings)

Snapsync looks for config file in standard places (/etc/snapsync and
~/.snapsync/). Also user may use -config flag to point to other file.
Examplary file is provided.

Change-Id: I239aa3925f02b7aec6fe0f1e6887e2179ec3f7c1
Signed-off-by: Maciej Wereski <m.wereski@partner.samsung.com>
7 years agoAdd git job manager 39/117839/5
Maciej Wereski [Thu, 2 Mar 2017 14:57:05 +0000 (15:57 +0100)]
Add git job manager

gitManager will be used to run tasks on git repositories. It provides
few job types:
* verify - chronologically compares source and target commits
* add remote - adds requested remote to local git repository
* tag - applies requested tag on requested commit
* push - pushes requested tag to remote

All those tasks are run by set number of workers (by default equal to
number of available CPUs) in parallel. Communication is done via job and
error channels and method to cancel pending jobs is available.

Change-Id: I90c315747a4882f9e01f8428cf11d677236297da
Signed-off-by: Maciej Wereski <m.wereski@partner.samsung.com>
7 years agoAdd git repository data structures 38/117838/4
Maciej Wereski [Thu, 2 Mar 2017 12:17:39 +0000 (13:17 +0100)]
Add git repository data structures

These structures describe git repositories available in source/target
profiles and how HEADS in those profile relate to each other.

Change-Id: I26bb0711c85c997b8c609cfffe219b28c999ac38
Signed-off-by: Maciej Wereski <m.wereski@partner.samsung.com>
7 years agoDownload and parse profile XMLs 37/117837/3
Maciej Wereski [Wed, 1 Mar 2017 14:42:00 +0000 (15:42 +0100)]
Download and parse profile XMLs

With every snapshot few XML manifests are published. build.xml provides
information about published RPM repositories. Every RPM repository has
own XML manifest which contain information about git repositories and
respective commits used to build RPM packages.

Change-Id: I1cac5134c2551b53ce7595e4ed2dca7fd363d588
Signed-off-by: Maciej Wereski <m.wereski@partner.samsung.com>
7 years agoAdd Apache 2.0 license 36/117836/3
Maciej Wereski [Tue, 21 Feb 2017 15:00:31 +0000 (16:00 +0100)]
Add Apache 2.0 license

Change-Id: Ibda4b62adbd06f4fa049b047af0f16abd686d0c1
Signed-off-by: Maciej Wereski <m.wereski@partner.samsung.com>
8 years agoInitial empty repository
seonil kim [Thu, 21 Jan 2016 04:24:29 +0000 (20:24 -0800)]
Initial empty repository