mainSavannah Administration - Support: sr #110378, request Git repo set up for GNU...

 
 

sr #110378: request Git repo set up for GNU Superopt

Submitter:  Thien-Thi Nguyen <ttn>
Submitted:  Tue 17 Nov 2020 02:07:43 AM UTC
   
 
Category:  Source code repositories - developer access Priority:  5 - Normal
Severity:  3 - Normal Status:  Done
Privacy:  Public Assigned to:  rwp
Operating System:  None Open/Closed:  Closed
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Thu 18 Mar 2021 12:59:17 AM UTC, comment #10: 

Sorry for the delay.  I rather lost track of this ticket for a while.

Done.  I have changed your default branch to be "p" as you desire.  That is a very unusual and atypical branch name.  But the name is actually arbitrary so is not any technical problem.

When anyone clones your package they will get the default branch "p" checked out into their local sandbox by default.

And with that I think everything is done.

Bob Proulx <rwp>
Site Administrator
Sat 06 Feb 2021 01:12:41 PM UTC, comment #9: 

Sorry for the long delay in response.

I intend the 'p' branch to be the default one.  How do i set that up?

Thien-Thi Nguyen <ttn>
Sat 30 Jan 2021 04:27:49 AM UTC, comment #8: 

Ping?  Has there been an update on the git repository for GNU Superopt?  I look and I still see the same problem now as before.  It has an "archive" branch and a "p" branch but neither of those match the default clone branch.

Adding to my previous instructions, after a clean clone in a fresh directory one will see the following remote branches.

$ git branch -a
  remotes/origin/archive
  remotes/origin/p

But no active branch and no default branch.  In order to switch to either the "archive" or "p" branches above one can simply check them out.

$ git checkout p
Switched to branch 'p'
Your branch is up to date with 'origin/p'.

Bob Proulx <rwp>
Site Administrator
Sat 26 Dec 2020 10:51:19 PM UTC, comment #7: 


> Thanks.  Everything is fine, now, w/ these instructions.


Great!  Good to hear that things are better.  And I see that code has been pushed.  However I also see that there is a problem that needs to be fixed.  There are only two branches and those are "archive" and "p" branches.  Neither of those seem to be an intended main trunk master branch type of branch.  However the default branch at initial upload was set to the "master" branch, which does not exist.  And therefore when doing a pristine clone checkout there is no default branch to set as the default.  So something is amiss.

Were one of those branches intended to be the master copy branch?  Or is that still in process of happening?

> Strangely enough, i used instructions on that page to try to push previously,
> w/ the remote in the form of:
>
>  ttn@git.sv.gnu.org:/srv/git/superopt.git
>
> Perhaps that is no longer a valid syntax?  In any case, i will close this
> issue shortly.  Thanks again.


The git tools recognize a URL for the repository.  Being a URL as you know there are many forms available for it.  The man page for git-clone includes the following explanation that instead of doing a poor summary I would just include verbatim.  But in summary I will say that ssh://ttn@git.savannah.gnu.org/srv/git/superopt.git is the canonical URL syntax and ttn@git.sv.gnu.org:/srv/git/superopt.git is the scp-like alternative syntax and both are effectively equivalent.  Also git.savannah.gnu.org is the canonical of git.sv.gnu.org which is an official alternative.

GIT URLS
       In general, URLs contain information about the transport protocol, the
       address of the remote server, and the path to the repository. Depending
       on the transport protocol, some of this information may be absent.

       Git supports ssh, git, http, and https protocols (in addition, ftp, and
       ftps can be used for fetching, but this is inefficient and deprecated;
       do not use it).

       The native transport (i.e. git:// URL) does no authentication and
       should be used with caution on unsecured networks.

       The following syntaxes may be used with them:

       o   ssh://[user@]host.xz[:port]/path/to/repo.git/

       o   git://host.xz[:port]/path/to/repo.git/

       o   http[s]://host.xz[:port]/path/to/repo.git/

       o   ftp[s]://host.xz[:port]/path/to/repo.git/

       An alternative scp-like syntax may also be used with the ssh protocol:

       o   [user@]host.xz:path/to/repo.git/

       This syntax is only recognized if there are no slashes before the first
       colon. This helps differentiate a local path that contains a colon. For
       example the local path foo:bar could be specified as an absolute path
       or ./foo:bar to avoid being misinterpreted as an ssh url.

And so we see the description of the URL syntaxes including the scp-like syntax.  It's personal preference as it is a client interpreted string.  I prefer the syntax with the protocol on the front because I think it is both more self-documenting and also easier to edit on the fly to one of the other different protocols.

However note that the path used by each of the protocols happens to be incrementally different for all three.  That's unfortunate but an implementation detail of how each has been implemented.  ssh is a real shell login command and sees the actual /srv/git path.  https/http share the web server namespace with svn, hg, bzr, cvs and needs at least the /git path to select that namespace.  The anonymous but dedicated git:// protocol is the only one that does not have a namespacing leading directory because git is all that the git-daemon does.  And so all three paths are slightly different of necessity.

I'll mention that the ftp protocol is not supported at Savannah.

The git upstream documentation goes on to mention this following too.

       The ssh and git protocols additionally support ~username expansion:

       o   ssh://[user@]host.xz[:port]/~[user]/path/to/repo.git/

       o   git://host.xz[:port]/~[user]/path/to/repo.git/

       o   [user@]host.xz:/~[user]/path/to/repo.git/

I'll mention that Savannah does not support ~[user] syntax, please don't use it.  The actuality is that it does exist but the path to the user home directory is an accident of implementation and one that might change and likely will change in the future.

And the documention continues with more detail that is well worth exploring too.

And just finishing this that I await your information on the default branch for git so as to understand how things should be set up for a clean checkout.

Bob Proulx <rwp>
Site Administrator
Sat 26 Dec 2020 01:24:53 AM UTC, comment #6: 


> Let us know if this works for you.


Thanks.  Everything is fine, now, w/ these instructions.

> There is additional documentation in the
> https://savannah.nongnu.org/maintenance/UsingGit/ page.


Strangely enough, i used instructions on that page to try to push previously, w/ the remote in the form of:

 ttn@git.sv.gnu.org:/srv/git/superopt.git

Perhaps that is no longer a valid syntax?  In any case, i will close this issue shortly.  Thanks again.


Thien-Thi Nguyen <ttn>
Tue 22 Dec 2020 11:18:45 PM UTC, comment #5: 

Since you have a git repository for your source all you need to do is to push it and publish it to Savannah git repository.

Let's assume you want "origin" to be Savannah.  In that case delete any previous origin and set it again.  Or choose a different name such as "upstream".  Names are arbitrary.  But for the traditional "origin" this would delete the previous and set a new one.  And then push your repository there.

git remote rename origin oldorigin  # if existing
git remote rm origin  # if existing and want it removed

Then add the new origin and push to it.

git remote add origin ssh://ttn@git.savannah.gnu.org/srv/git/superopt.git
git push -u origin master

If you are using a different branch than master for what you want to publish, such as "main" or whatever then substitute that in the above. And the same if using "upstream" or whatever instead of origin.  Names are arbitrary.

Then it is a good idea to test that all is well.  I suggest doing a clone in another location as a verification step.

These are three of the several possible alternate ways to clone.

git clone ssh://ttn@git.savannah.gnu.org/srv/git/superopt.git
git clone https://git.savannah.gnu.org/git/superopt.git
git clone git://git.savannah.gnu.org/superopt.git

Let us know if this works for you.  There is additional documentation in the https://savannah.nongnu.org/maintenance/UsingGit/ page.


Bob Proulx <rwp>
Site Administrator
Sun 20 Dec 2020 11:13:44 PM UTC, comment #4: 

Sorry, i guess i'm still not being clear.  Here's the situation: GNU Superopt was developed and maintained in the 1990s, long before savannah was set up.  It went unmaintained until a few years ago, when i volunteered to take over maintenance duties.  At that point, someone (cannot recall) sent me superopt-2.5.tar.gz.  Since then, i've created a local (on my machine) Git repo and done work on it there.  It was only recently (in the last few months) that i felt it was time to roll up a release, and wanted to first get the source onto savannah, etc.  The Superopt project on savannah had been "set up" (i suppose) by someone and so my request was/is to have its source repo set to Git (via "git init" somewhere?) so that i can (finally) push my changes to it.  It currently has no source code.

Earlier, i enabled Git as suggested by ineiev and tried to push, but received an error.  That's why i requested help from you folks, to do whatever is necessary so that the "git push savannah p" works ("p" is the branch i work on, normally, not "master").

If there's something else i need to do, please let me know.  Thanks for looking into this.

Thien-Thi Nguyen <ttn>
Sun 20 Dec 2020 08:46:25 PM UTC, comment #3: 

Your question catches me really confused.  If you are the maintainer then I think I can't be faulted for expecting that you would be the best person to know where the source code to the package you are maintaining resides!  And if you don't know then who would know?  Certainly not us.  Where is your source code?

Bob Proulx <rwp>
Site Administrator
Sat 19 Dec 2020 05:57:50 AM UTC, comment #2: 

Sorry, i was not clear earlier.
There is no current CVS repo to convert (AFAICT).

I tried following the instructions anyway and saw:

$ LANG=C git cvsimport -A ../.authors.txt -p x -v -d:ext:ttn@cvs.savannah.gnu.org:/sources/superopt superopt
Initialized empty Git repository in /home/ttn/build/GNU/superopt/.git/
Running cvsps...
cvs_direct initialized to CVSROOT /sources/superopt
cvs rlog: Logging superopt
DONE; creating master branch
fatal: refs/heads/origin: not a valid SHA1
fatal: master: not a valid SHA1
fatal: You are on a branch yet to be born
checkout failed: 32768

What do i do now?

Thien-Thi Nguyen <ttn>
Thu 26 Nov 2020 10:43:38 AM UTC, comment #1: 

Enable Git on the "Select features" page of your Savannah group; then, please check "Importing from CVS" in
https://savannah.nongnu.org/maintenance/UsingGit/

Ineiev <ineiev>
Site Administrator
Tue 17 Nov 2020 02:07:43 AM UTC, original submission:  

Could you please change the source code repository from CVS to Git for GNU Superoptimizer?  I'd like to populate the repo w/ source code.

Thanks,
Thien-Thi Nguyen
GNU Superoptimizer maintainer

Thien-Thi Nguyen <ttn>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by rwp (Posted a comment)
  • -email is unavailable- added by ineiev (Posted a comment)
  • -email is unavailable- added by ttn (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 5 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2021-03-18 rwp StatusIn Progress Done
        Open/ClosedOpen Closed
    2021-01-29 ineiev Assigned toineiev rwp
    2020-11-26 ineiev StatusNone In Progress
        Assigned toNone ineiev

    Back to the top

    Powered by Savane 3.13-f8d8.
    Corresponding source code