[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Savannah-hackers-public] Problems with initial load of new Git repo
From: |
Assaf Gordon |
Subject: |
Re: [Savannah-hackers-public] Problems with initial load of new Git repo |
Date: |
Wed, 9 Sep 2015 10:52:41 -0400 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 |
Hello David and all,
On 09/08/2015 04:30 PM, David Hill wrote:
I am having problems uploading some of the relevant files/folders
into a new Git repo for the 'gnuspeech' project, prior to the first
official release. Karl Berry suggested I contact you.
To make sure we're talking about the same things, you are referring to this
project:
http://savannah.gnu.org/p/gnuspeech
and this git repository:
http://git.savannah.gnu.org/gitweb/?p=gnuspeech.git
and no other repositories / projects, correct?
that is, all the projects/folders/repositories you are mentioning below are
parts of this project?
If I see correctly, you've populated the repository just three days ago for the
first time.
Were the files in that repository copied from another public repository (e.g.
an old CVS/SVN repo) ?
If that is the case, I'd say we can safely reset the repository and have a
fresh start
(normally, Savannah does not allow 'reseting' an existing long-established
repository).
Now, to the project's structure:
Looking at the git repository, there are indeed some strange entries there.
There are also many binary entries that usually do not below in a source-code
repository.
For example, some output for 'git log --stat' shows:
====
commit c5116c14e0d6718aace657237df8a5bf86001d0c
Author: David Hill <address@hidden>
Date: Sat Sep 5 14:31:03 2015 -0700
Initial set of files for release
gnuspeech/.DS_Store | Bin 0 -> 6148
bytes
gnuspeech/Builds/.DS_Store | Bin 0 -> 6148
bytes
.../Contents/Frameworks/GnuSpeech.framework/GnuSpeech | 1 +
[...]
.../Debug/CompilerIdCXX.build/CompilerIdCXX.hmap | Bin 0 -> 1561
bytes
.../Objects-normal/x86_64/CMakeCXXCompilerId.d | 2 +
.../Objects-normal/x86_64/CMakeCXXCompilerId.dia | Bin 0 -> 220
bytes
.../Objects-normal/x86_64/CMakeCXXCompilerId.o | Bin 0 -> 3624
bytes
.../Objects-normal/x86_64/CompilerIdCXX.LinkFileList | 1 +
.../x86_64/CompilerIdCXX_dependency_info.dat | Bin 0 -> 14112
bytes
.../Script-2C8FEB8E15DC1A1A00E56A5D.sh | 2 +
.../CompilerIdCXX.build/Debug/CompilerIdCXX.build/dgph | Bin 0 -> 28828
bytes
.../CompilerIdCXX/CompilerIdCXX.xcodeproj/project.pbxproj | 110 +
gnuspeech/GnuspeechSA/build/CMakeFiles/CMakeOutput.log | 696 +
.../GnuspeechSA/build/CMakeFiles/TargetDirectories.txt | 5 +
gnuspeech/GnuspeechSA/build/CMakeFiles/cmake.check_cache | 1 +
gnuspeech/GnuspeechSA/build/CMakeFiles/feature_tests.bin | Bin 0 -> 8784
bytes
[...]
.../Objects-normal/x86_64/DictionarySearch.d | 5 +
.../Objects-normal/x86_64/DictionarySearch.dia | Bin 0 -> 220
bytes
.../Objects-normal/x86_64/DictionarySearch.o | Bin 0 -> 154652
bytes
.../Objects-normal/x86_64/DriftGenerator.d | 3 +
.../Objects-normal/x86_64/DriftGenerator.dia | Bin 0 -> 220
bytes
.../Objects-normal/x86_64/DriftGenerator.o | Bin 0 -> 5532
bytes
[...]
.../build/Debug/TRAcT.app/Contents/Info.plist | 50 +
.../build/Debug/TRAcT.app/Contents/PkgInfo | 1 +
.../build/Debug/TRAcT.app/Contents/Resources/00-gray.tif | Bin 0 -> 27592
bytes
.../build/Debug/TRAcT.app/Contents/Resources/01-gray.tif | Bin 0 -> 27592
bytes
.../build/Debug/TRAcT.app/Contents/Resources/02-gray.tif | Bin 0 -> 27592
bytes
.../build/Debug/TRAcT.app/Contents/Resources/03-gray.tif | Bin 0 -> 27592
bytes
.../build/Debug/TRAcT.app/Contents/Resources/04-gray.tif | Bin 0 -> 27592
bytes
====
Some of these are compiled binary files (from a Mac?) that should not be stored
in a git repository.
I would recommended starting over with a clean repository, and carefully adding
only source code files (and only files under the 'gnuspeech' source code
directory).
My colleague suggested it would be better to have six different repos
in the project, one for each topic folder in the existing folder,
rather than one Git repo.
We can certainly create six sub-repositories under the main gnuspeech, and you
could use them as 'git submodules'.
If you want that, let me know their names (I'd assume the folders you've
mentioned, but best to verify).
Having said that, I don't understand why four of the folders loaded
as expected, but two didn't. The two that loaded (GnuspeechSA and
TRAcT manual) are quite similar in form to the two that didn't
(GnuSpeech and monetManual).
The git repository contains strange enough entries, I'd not try to guess how or
why at this point.
I would be grateful for your comments/advice. I am ready to make our
first official release, and this is obviously a hold-up.
I'd suggest the following:
Locally (on your computer):
1. create a new git repository with gnuspeech's files.
If you prefer to import an existing git repository, carefully ensure it only
contains relevant files (and not binary/compiled files)
2. If you want to use git-submodules, create a new git repository for each
submodule,
and use 'git submodule' to add the submodules.
More information here:
https://git.wiki.kernel.org/index.php/GitSubmoduleTutorial
Test the local repositories by cloning them to a different location (or a
different computer) and ensure all needed files are there.
Remotely:
Savannah is not a good place to experiment. There is a strict policy of not
deleting files/repositories once they are established,
thus, fixing git mistakes is not easy.
I would humbly suggest using a different git service for experimentation (e.g.
you could install 'gitolite' locally, or use other publicly available services).
Experiment with 'git push' of your git repository (and its submodules), until
you have it working the way you want.
Once you are pleased with the state of your git repository,
we can reset the gnuspeech git repository (as an exception to the 'no code
removal' rule, because you've just created it),
and you could push your updated repository there.
Please remember:
Once you've pushed some code into the repository (and certainly after you've
made an official release),
we can not remove code or reset a git repository or fix any commit/push
mistakes - the only way to fix those
is to commit+push another change reverting the mistake.
The other problem is that I failed to GPG-sign any of the files, but
assume that can be remedied if I can upload all the files, having
signed them.
I'm not sure what you mean by "failed".
To upload files to the git repository in Savannah there is no need to GPG-sign
anything.
You already have an SSH public-key setup and you can push to the git repository.
GPG-signing is required for another task: uploading a new tarball of an
official release to ftp.gnu.org.
You should follow the instructions here to sign an official release:
https://www.gnu.org/prep/maintain/html_node/Automated-Upload-Registration.html
If a new upload is not signed with your valid key, it will not appear on the
official 'ftp.gnu.org' server.
However,
please note that this GPG check and FTP uploads are not handled by Savannah
admins.
If you have problem with those, you should contact address@hidden .
Hope this helps.
regards,
- assaf