In the move away from environment variables, replace JANWARE_USER
support in pgit.sh by the --login option.
Signed-off-by: Jan Lindemann <jan@janware.com>
In the attempt to move away from communicating options via
environment variables from one part of jw-build software to another,
replace PGIT_CLONE_FROM_USER with the clearer --refspec option. Which
is also more versatile.
Signed-off-by: Jan Lindemann <jan@janware.com>
Don't unconditionally add proactiveAuth=basic to Git's config during
clone, but only if cloning happens after authentication.
This saves unauthenticated users funny password prompts. On the other
hand, this makes a server setting persistent which could be changed
on the server.
URL =~ /api/ (or so) => 401, followed by Basic Auth
URL !=~ /api/ (or so) => Redirect or free access, depending on resource
Currently all resources, including API, are accessible by either
basic auth or a Cookie, but basic auth needs to be present in the
first request, which throws off some clients (notably Git without
proactiveAuth=basic).
Signed-off-by: Jan Lindemann <jan@janware.com>
For git clone, use and persist the http.proactiveAuth=basic config
option, because it's needed for janware.com servers.
Signed-off-by: Jan Lindemann <jan@janware.com>
Replace git-srv-admin.sh list-personal-projects by the more universal
"jw-projects.py list-repos" for enumerating repo names. This is a
step towards supporting Git servers other than janware.com.
Signed-off-by: Jan Lindemann <jan@janware.com>
pgit.sh has ssh://$login@git.janware.com/srv/git/$fromuser/proj/$reponame
hard-coded as the remote Git URLs of every cloned project.
This commit adds support for the global option --remote-base. Passing
it changes the URL to <remote-base>/$fromuser/$reponame..
Signed-off-by: Jan Lindemann <jan@janware.com>
Add support for --create-user-repos to pgit.sh. It controls whether
or not personal remote repositories on janware.com are created when
cloning from another user.
Signed-off-by: Jan Lindemann <jan@janware.com>
pgit.sh is not indispensable for building a projects directory, but
it is necessary for some convenience targets in projects-dir.mk.
Signed-off-by: Jan Lindemann <jan@janware.com>
This commit removes everything not strictly necessary for running
"make clean all" inside jw-build.
packaging jw-devtest. This cuts the repo down from 24077 to 4725
lines of code.
The idea is to
1) Further remove bloat from the remaining bits
2) Re-add what's necessary to build and package other essential repos.
The decision should be based on whether or not jw-build can also be
useful in a non-janware context.
Signed-off-by: Jan Lindemann <jan@janware.com>
This adds support for the variable OFFLINE_PROJECTS in projects-dir.mk and the
PGIT_IGNORE environment variable. Both go hand in hand and do what their names
insinuate. OFFLINE_PROJECTS is initialized from EXCLUDE_FROM_BUILD, which in
turn is initialized from exclude.txt and friends.
Signed-off-by: Jan Lindemann <jan@janware.com>
PGIT_CLONE_CLONE_FROM_USER now supports optional suffixes of the form
[:src-ref[:dst-ref]]. If present, src-ref specifies the remote branch pgit.sh
tries to fetch, and dst-ref the local branch it tries to fetch into. src-ref
defaults to "master" (as it was before) and dst-ref to nothing, i.e. no
head-update of any local branch.
Signed-off-by: Jan Lindemann <jan@janware.com>
git pull, push, fetch use --recurse-submodules, which is non-optional for push.
Added --recurse-submodules=on-demand to all for consistency.
Signed-off-by: Jan Lindemann <jan@janware.com>
Sadly, a commit returns 1 if there's nothing to commit, which makes pgit.sh
error out of the project loop, which is run with set -e. This option disables
-e.
OTOH, pgit.sh commit could check for a diff and only run git commit if there is
a diff.
Signed-off-by: Jan Lindemann <jan@janware.com>
The diff source and destination in diff used to be a/path/to/file.txt and
b/path/to/file.txt which differed from cvs diff -u. Changed that, now make diff
in the toplevel directory creates usable patches for all sources.
Signed-off-by: Jan Lindemann <jan@janware.com>
Problem is, the OS cvs package sets the environment variable to "ssh"
in a profile script. Overriding this to speed things up.
Signed-off-by: Jan Lindemann <jan@janware.com>
This project was copied from ytools, with anything not related to providing
build-functionality left out. This commit replaces the occurences of ytools
with jw-build, and removes some but most certainly not all legacy ytools
references.
Signed-off-by: Jan Lindemann <jan@janware.com>
- Run git submodule init / update also if project existed
- After newly fetching from others:
- Git branch --set-upstream-to origin/master
- Git push
Signed-off-by: Jan Lindemann <jan@janware.com>