Re: [PATCH v3 00/26] inotify support

2014-02-10 Thread Duy Nguyen
On Mon, Feb 10, 2014 at 3:19 AM, Torsten Bögershausen tbo...@web.de wrote:
 Please see filewatcher.c:
 +   if (daemon) {
 +   int err;
 +   strbuf_addf(sb, %s/log, socket_path);
 +   err = open(sb.buf, O_CREAT | O_TRUNC | O_WRONLY, 0600);
 +   adjust_shared_perm(sb.buf);
 (And now we talk about the logfile:
 In daemon mode, stdout and stderr are saved in $WATCHER/log.
 It could be nice to make this feature configrable,
 either XXX/log or /dev/null.
 On the long run we may eat to much disc space on a machine.
 The other thing is that we may want to seperate stdout
 from stderr, but even this is a low prio comment.

I probably should follow git-daemon and put these to syslog.

 
 There is a small issue when I tested on a machine,
 where the data directory called daten is softlinked to another disk:
 daten - /disk3/home2/tb/daten

 and the projects directory is softlinked to daten/projects
 projects - daten/projects/

 t7514 fails like this:
 --- expect  2014-02-08 14:37:07.0 +
 +++ actual  2014-02-08 14:37:07.0 +
 @@ -1,6 +1,6 @@
  packet:  git hello
  packet:  git hello
 -packet:  git index 6cb9741eee29ca02c5b79e9c0bc647bcf47ce948 
 /home/tb/projects/git/tb/t/trash directory.t7514-file-watcher-lib
 +packet:  git index 6cb9741eee29ca02c5b79e9c0bc647bcf47ce948 
 /disk3/home2/tb/daten/projects/git/tb/t/trash directory.t7514-file-watcher-lib

 Could we use relative path names internally, relative to $GIT_DIR ?

No because this is when the client tell the server about $GIT_DIR. I
guess we can use realpath(1) here.

 ---
 Another thing:
 Compiling under Mingw gives this:
 LINK git-credential-store.exe
 libgit.a(file-watcher-lib.o): In function `connect_watcher':
 c:\Dokumente und Einstellungen\tb\projects\git\tb/file-watcher-lib.c:21: 
 undefined reference to `unix_stream_connect'
 collect2: ld returned 1 exit status
 make: *** [git-credential-store.exe] Error 1

 We may need a compiler option like HAS_UNIX_SOCKETS or so.

I'll make unix-socket.o build unconditionally and return error at runtime.

 --
 +++ b/file-watcher.c

 +#define INOTIFY_MASKS (IN_DELETE_SELF | IN_MOVE_SELF | \
 +  IN_CREATE | IN_ATTRIB | IN_DELETE | IN_MODIFY |  \
 +  IN_MOVED_FROM | IN_MOVED_TO)
 This feels confusing:
 a) we have inotify_masks with lower case below.
 b) how about INOTIFY_NEEDED_BITS ?
 ---

OK

 I'm OK with having the protocol having specified in the
 test cases.
 One thing that I have on the wish list is to make the
 commands/responses more unique, to be able to run grep
 on the code base.

 One idea could be to use a prefix
 fwr for file watcher request or
 fwr for file watcher response.
 This does not work, hihi, so

 fwq for file watcher reQuest and
 fwe for file watcher rEsponse.
 Or
 ffw as from file watcher and
 tfw as to file watcher for the people who have problems
 with left and right,  and  could work.

If you want I can update test-file-watcher to accept send and
recv instead of  and , respectively. The only command with
the same name for response and request is hello. I can make it
hello and helloack (or bonjour as response?).
-- 
Duy
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 2/2] gc: config option for running --auto in background

2014-02-10 Thread Erik Faye-Lund
On Sat, Feb 8, 2014 at 8:08 AM, Nguyễn Thái Ngọc Duy pclo...@gmail.com wrote:
 `gc --auto` takes time and can block the user temporarily (but not any
 less annoyingly). Make it run in background on systems that support
 it. The only thing lost with running in background is printouts. But
 gc output is not really interesting. You can keep it in foreground by
 changing gc.autodetach.

 Signed-off-by: Nguyễn Thái Ngọc Duy pclo...@gmail.com
 ---
  Documentation/config.txt |  4 
  builtin/gc.c | 23 ++-
  t/t5400-send-pack.sh |  1 +
  3 files changed, 23 insertions(+), 5 deletions(-)

 diff --git a/Documentation/config.txt b/Documentation/config.txt
 index 5f4d793..4781773 100644
 --- a/Documentation/config.txt
 +++ b/Documentation/config.txt
 @@ -1167,6 +1167,10 @@ gc.autopacklimit::
 --auto` consolidates them into one larger pack.  The
 default value is 50.  Setting this to 0 disables it.

 +gc.autodetach::
 +   Make `git gc --auto` return immediately andrun in background
 +   if the system supports it. Default is true.
 +
  gc.packrefs::
 Running `git pack-refs` in a repository renders it
 unclonable by Git versions prior to 1.5.1.2 over dumb
 diff --git a/builtin/gc.c b/builtin/gc.c
 index c19545d..ed5cc3c 100644
 --- a/builtin/gc.c
 +++ b/builtin/gc.c
 @@ -29,6 +29,7 @@ static int pack_refs = 1;
  static int aggressive_window = 250;
  static int gc_auto_threshold = 6700;
  static int gc_auto_pack_limit = 50;
 +static int detach_auto = 1;
  static const char *prune_expire = 2.weeks.ago;

  static struct argv_array pack_refs_cmd = ARGV_ARRAY_INIT;
 @@ -73,6 +74,10 @@ static int gc_config(const char *var, const char *value, 
 void *cb)
 gc_auto_pack_limit = git_config_int(var, value);
 return 0;
 }
 +   if (!strcmp(var, gc.autodetach)) {
 +   detach_auto = git_config_bool(var, value);
 +   return 0;
 +   }
 if (!strcmp(var, gc.pruneexpire)) {
 if (value  strcmp(value, now)) {
 unsigned long now = approxidate(now);
 @@ -301,11 +306,19 @@ int cmd_gc(int argc, const char **argv, const char 
 *prefix)
  */
 if (!need_to_gc())
 return 0;
 -   if (!quiet)
 -   fprintf(stderr,
 -   _(Auto packing the repository for 
 optimum performance. You may also\n
 -   run \git gc\ manually. See 
 -   \git help gc\ for more 
 information.\n));
 +   if (!quiet) {
 +   if (detach_auto)
 +   fprintf(stderr, _(Auto packing the 
 repository in background for optimum performance.\n));
 +   else
 +   fprintf(stderr, _(Auto packing the 
 repository for optimum performance.\n));
 +   fprintf(stderr, _(See \git help gc\ for manual 
 housekeeping.\n));
 +   }
 +   if (detach_auto)
 +   /*
 +* failure to daemonize is ok, we'll continue
 +* in foreground
 +*/
 +   daemonize();

While I agree that it should be OK, shouldn't we warn the user?
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 1/2] daemon: move daemonize() to libgit.a

2014-02-10 Thread Erik Faye-Lund
On Sat, Feb 8, 2014 at 8:08 AM, Nguyễn Thái Ngọc Duy pclo...@gmail.com wrote:
 Signed-off-by: Nguyễn Thái Ngọc Duy pclo...@gmail.com
 diff --git a/setup.c b/setup.c
 index 6c3f85f..b09a412 100644
 --- a/setup.c
 +++ b/setup.c
 @@ -787,3 +787,27 @@ void sanitize_stdfds(void)
 if (fd  2)
 close(fd);
  }
 +
 +int daemonize(void)
 +{
 +#ifdef NO_POSIX_GOODIES
 +   errno = -ENOSYS;
 +   return -1;
 +#else
 +   switch (fork()) {
 +   case 0:
 +   break;
 +   case -1:
 +   die_errno(fork failed);
 +   default:
 +   exit(0);
 +   }
 +   if (setsid() == -1)
 +   die_errno(setsid failed);
 +   close(0);
 +   close(1);
 +   close(2);
 +   sanitize_stdfds();
 +   return 0;
 +#endif
 +}

Nice change.

Just a nit: When I added the NO_POSIX_GOODIES-flag, Junio wanted the
implementations to be separate.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[BUG] git-stash confused when directory replaced with symlink

2014-02-10 Thread Vovan-VE

Hello!

Looks like a bug. `git stash` fails with fatal error, when whole  
subdirectory is replaced with a symlink.


I'm using latest Git/1.8.5.4 under Ubuntu 12.04.4 x64.

Steps to reproduce initial state:

$ git init
$ mkdir dir
$ touch dir/file.txt
$ git add dir/file.txt
$ git commit -m 'Initial commit'

$ rm -r dir
$ ln -s -T /something/does/not/matter dir
$ git status
# Changes not staged for commit:
#
#   deleted:dir/file.txt
#
# Untracked files:
#
#   dir

Now the bug itself:

$ git stash
error: 'dir/file.txt' is beyond a symbolic link
fatal: Unable to process path dir/file.txt
Cannot save the current worktree state

Target of the symlink doesn't matter, as far as I understand.
Doing `git add --all` or `git rm --cached dir/file.txt` doesn't change the  
result - still fatal.


Git tries to delete file dir/file.txt, which does not exist. It confused  
by existing dir.


However `git checkout .` works fine: symlink deleted, directory restored.

--
Vovan-VE
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: gitweb.cgi bug

2014-02-10 Thread Dongsheng Song
On Mon, Feb 10, 2014 at 12:06 AM, Andrew Keller and...@kellerfarm.com wrote:
 On Feb 8, 2014, at 10:19 PM, Dongsheng Song wrote:
 On Sun, Feb 9, 2014 at 12:29 AM, Andrew Keller and...@kellerfarm.com wrote:
 On Feb 8, 2014, at 8:37 AM, Dongsheng Song wrote:

 I have an git repo PROJECT.git, the full path is /srv/repo/git/PROJECT.git,
 when I set git_base_url_list in gitweb.conf:

 @git_base_url_list = qw(https://192.168.30.239/repo/git
   git@192.168.30.239:repo/git);

 I got the result:

 https://192.168.30.239/repo/git/PROJECT.git
 git@192.168.30.239:/PROJECT.git

 This is wrong, it should be (without the leading '/')
 git@192.168.30.239:PROJECT.git

 There is no way to generate a fetch url of 'git@192.168.30.239:PROJECT.git' 
 in gitweb.

 If one of the base urls was 'git@192.168.30.239:.', then you could get a 
 fetch URL of 'git@192.168.30.239:./PROJECT.git'

 In general, though, I like to stay away from relative paths.  Weird things 
 can happen, like HTTP works but SSH doesn't, because the home directory for 
 SSH changed because you used a different user.

 What's about the following translate rules ?

 git@192.168.30.239:  - git@192.168.30.239:PROJECT.git
 git@192.168.30.239:/ - git@192.168.30.239:/PROJECT.git
 git@192.168.30.239:/repo  - git@192.168.30.239:/repo/PROJECT.git
 git@192.168.30.239:/repo/ - git@192.168.30.239:/repo/PROJECT.git

 I think that those translation rules are completely reasonable.

 However, that's not what gitweb was originally designed to do.  What you're 
 describing is a desire for a new feature, not the existence of a bug.  
 Basically, gitweb does not support relative paths when the base url does not 
 contain part of the path already.

 I don't know Perl, but I think change the following translate code is
 not a hard work:

# use per project git URL list in $projectroot/$project/cloneurl
# or make project git URL from git base URL and project name
my $url_tag = URL;
my @url_list = git_get_project_url_list($project);
@url_list = map { $_/$project } @git_base_url_list unless @url_list;
foreach my $git_url (@url_list) {
next unless $git_url;
print format_repo_url($url_tag, $git_url);
$url_tag = ;
}

 You're right - that is where the change should be applied, and the change you 
 suggest is pretty simple.

 However, I'm not confident that the syntax for a relative path is the same 
 for all schemes.  (Others on the list, feel free to object.)  Since gitweb 
 blindly concatenates the base URL and the relative project path, I'm worried 
 that adding the proper functionality for one scheme will yield incorrect 
 behavior for another scheme.

 Can you move your repository to a subfolder?  Can use use absolute paths 
 instead of relative paths?  Either of those approaches work around this 
 issue.  I don't mean to coldly tell you that the solution is don't do that, 
 but on the surface, this seems like a nasty problem.

  - Andrew


Thanks, I hope this 'new feature' will translate into reality, and not
take too long.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: attr.c doesn't honor --work-tree option

2014-02-10 Thread Lasse Makholm
On 6 February 2014 18:54, Junio C Hamano gits...@pobox.com wrote:
 Lasse Makholm lasse.makh...@gmail.com writes:

 Here's a repro with -DDEBUG_ATTR=1 and a printf() in read_attr_from_file():

 $ cd /tmp/
 $ mkdir -p attr-test/repo
 $ cd attr-test/repo
 $ git init
 Initialized empty Git repository in /tmp/attr-test/repo/.git/
 $ echo 'dir/* filter=foo' .gitattributes
 $

 Inside the working tree, it works:

 $ ~/src/git.git/git check-attr -a dir/file

 Does check-ignore misbehave the same way?

No, check-ignore works but also has NEED_WORK_TREE set. And that
actually also feels a bit wrong to me because check-attr and
check-ignore both seem like reasonable things to do in a bare repo
because .git(attributes|ignore) files are likely to be committed in
the repo.

 I suspect that is this because check-attr is not a command that
 requires a working tree.  The command was written primarily as a
 debugging aid that can be used anywhere as long as you have a
 repository to read strings from either its standard input or its
 arguments, and gives them directly to check_attr(), but it does so
 without first going to the top of the real working tree like
 check-ignore does.

Fair point. I actually stumbled across this because a git cat-file
--textconv ... was failing, so that's at least one other (and arguably
more real) use case that is broken in the same way.

 Forcing it to go to the top of the working tree (see the attached
 one-liner, but note that I didn't test it) may give you want you
 want.

For this case, it does, yes. But it also breaks check-attr in bare
repos with attributes defined in $GIT_DIR/info/attributes because it
will refuse to run without a work tree...

In any case the current state seems broken because --work-tree clearly
doesn't work for all commands...

Setting NEED_WORK_TREE for check-attr risks breaking existing scripts
but on the other hand there doesn't seem to be any good reason why
check-attr and check-ignore should differ in this regard...

It seems like the ideal solution would be an optional NEED_WORK_TREE
of some sort that would let these commands work correctly both with
--work-tree, without it and in bare repos but I get that that might
not be easy to fix...

Another approach might be to deprecate --work-tree and tell people to
use -C instead...

/L

  git.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

 diff --git a/git.c b/git.c
 index 7cf2953..314ec9f 100644
 --- a/git.c
 +++ b/git.c
 @@ -342,7 +342,7 @@ static struct cmd_struct commands[] = {
 { branch, cmd_branch, RUN_SETUP },
 { bundle, cmd_bundle, RUN_SETUP_GENTLY },
 { cat-file, cmd_cat_file, RUN_SETUP },
 -   { check-attr, cmd_check_attr, RUN_SETUP },
 +   { check-attr, cmd_check_attr, RUN_SETUP | NEED_WORK_TREE },
 { check-ignore, cmd_check_ignore, RUN_SETUP | NEED_WORK_TREE },
 { check-mailmap, cmd_check_mailmap, RUN_SETUP },
 { check-ref-format, cmd_check_ref_format },
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 2/2] gc: config option for running --auto in background

2014-02-10 Thread Duy Nguyen
On Mon, Feb 10, 2014 at 6:03 PM, Erik Faye-Lund kusmab...@gmail.com wrote:
 `gc --auto` takes time and can block the user temporarily (but not any
 -   if (!quiet)
 -   fprintf(stderr,
 -   _(Auto packing the repository for 
 optimum performance. You may also\n
 -   run \git gc\ manually. See 
 -   \git help gc\ for more 
 information.\n));
 +   if (!quiet) {
 +   if (detach_auto)
 +   fprintf(stderr, _(Auto packing the 
 repository in background for optimum performance.\n));
 +   else
 +   fprintf(stderr, _(Auto packing the 
 repository for optimum performance.\n));
 +   fprintf(stderr, _(See \git help gc\ for manual 
 housekeeping.\n));
 +   }
 +   if (detach_auto)
 +   /*
 +* failure to daemonize is ok, we'll continue
 +* in foreground
 +*/
 +   daemonize();

 While I agree that it should be OK, shouldn't we warn the user?

If --quiet is set, we should not be printing anyway. If not, I thinkg
we could only print auto packing in background.. when we actually
can do that, else just print the old message. It means an #ifdef
NO_POSIX_GOODIES here again though..
-- 
Duy
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 2/2] gc: config option for running --auto in background

2014-02-10 Thread Erik Faye-Lund
On Mon, Feb 10, 2014 at 2:17 PM, Duy Nguyen pclo...@gmail.com wrote:
 On Mon, Feb 10, 2014 at 6:03 PM, Erik Faye-Lund kusmab...@gmail.com wrote:
 `gc --auto` takes time and can block the user temporarily (but not any
 -   if (!quiet)
 -   fprintf(stderr,
 -   _(Auto packing the repository for 
 optimum performance. You may also\n
 -   run \git gc\ manually. See 
 -   \git help gc\ for more 
 information.\n));
 +   if (!quiet) {
 +   if (detach_auto)
 +   fprintf(stderr, _(Auto packing the 
 repository in background for optimum performance.\n));
 +   else
 +   fprintf(stderr, _(Auto packing the 
 repository for optimum performance.\n));
 +   fprintf(stderr, _(See \git help gc\ for manual 
 housekeeping.\n));
 +   }
 +   if (detach_auto)
 +   /*
 +* failure to daemonize is ok, we'll continue
 +* in foreground
 +*/
 +   daemonize();

 While I agree that it should be OK, shouldn't we warn the user?

 If --quiet is set, we should not be printing anyway. If not, I thinkg
 we could only print auto packing in background.. when we actually
 can do that, else just print the old message. It means an #ifdef
 NO_POSIX_GOODIES here again though..

Yuck, it's probably better to simply silently drop the detaching, I guess.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/6] t5538: fix default http port

2014-02-10 Thread Jeff King
On Sat, Feb 08, 2014 at 02:36:11PM +0700, Duy Nguyen wrote:

  Thinking on this more, I wonder if we should just do something like
  this:
 [...]
 Yes!

Here it is as a Real Patch™. I just based it on master, so it can
replace your 5537/5538 fix in your series.

 Next stop, attempt to start httpd at start_httpd regardless of
 GIT_TEST_HTTPD. If successful, test_set_prereq HTTPD or something that
 the following tests can use. If GIT_TEST_HTTPD is set and start_httpd
 fails, error out, not set prereq.

I'd be fine with that, as I always run them anyway. The potential
downsides would be:

  1. Is there anybody who has apache installed who would _not_ want to
 bring it up for the test?

  2. Is there anybody for whom the failure mode of bringing up apache
 would be unpleasant (e.g., if it hangs the tests or something)?

For (1), we could perhaps have a GIT_NO_TEST_HTTPD to avoid it.

For (2), I suspect we may need to make our error handling more robust,
but getting people to run it is the first step to figuring out what the
problems are.

If we go this route, we should probably do the same for
GIT_TEST_GIT_DAEMON in t5570 (and for that matter, we should probably do
the same for the port numbers).

-- 8 --
Subject: [PATCH] tests: auto-set LIB_HTTPD_PORT from test name

We set the default apache port for each of the httpd tests
to the 4-digit test number of the test script. We want these
to remain unique so that the tests do not conflict with each
other when run in parallel.

Instead of doing it manually in each test script, let's just
set it from the test name at run time. This is simpler, and
is one less thing to be updated when test scripts are
renamed (e.g., when being re-rolled or when conflicting
after being merged with another topic).

Incidentally, this fixes a case where t5537 and t5538 used
the same port number (5537), and could conflict with each
other when run in parallel.

Signed-off-by: Jeff King p...@peff.net
---
 t/lib-httpd.sh   | 2 +-
 t/t5537-fetch-shallow.sh | 1 -
 t/t5538-push-shallow.sh  | 1 -
 t/t5540-http-push.sh | 1 -
 t/t5541-http-push.sh | 1 -
 t/t5550-http-fetch.sh| 1 -
 t/t5551-http-fetch.sh| 1 -
 t/t5561-http-backend.sh  | 1 -
 8 files changed, 1 insertion(+), 8 deletions(-)

diff --git a/t/lib-httpd.sh b/t/lib-httpd.sh
index bfdff2a..b43162e 100644
--- a/t/lib-httpd.sh
+++ b/t/lib-httpd.sh
@@ -64,7 +64,7 @@ case $(uname) in
 esac
 
 LIB_HTTPD_PATH=${LIB_HTTPD_PATH-$DEFAULT_HTTPD_PATH}
-LIB_HTTPD_PORT=${LIB_HTTPD_PORT-'8111'}
+LIB_HTTPD_PORT=${LIB_HTTPD_PORT-${this_test#t}}
 
 TEST_PATH=$TEST_DIRECTORY/lib-httpd
 HTTPD_ROOT_PATH=$PWD/httpd
diff --git a/t/t5537-fetch-shallow.sh b/t/t5537-fetch-shallow.sh
index b0fa738..adf215a 100755
--- a/t/t5537-fetch-shallow.sh
+++ b/t/t5537-fetch-shallow.sh
@@ -178,7 +178,6 @@ if test -n $NO_CURL -o -z $GIT_TEST_HTTPD; then
test_done
 fi
 
-LIB_HTTPD_PORT=${LIB_HTTPD_PORT-'5537'}
 . $TEST_DIRECTORY/lib-httpd.sh
 start_httpd
 
diff --git a/t/t5538-push-shallow.sh b/t/t5538-push-shallow.sh
index 0a6e40f..8e54ac5 100755
--- a/t/t5538-push-shallow.sh
+++ b/t/t5538-push-shallow.sh
@@ -126,7 +126,6 @@ if test -n $NO_CURL -o -z $GIT_TEST_HTTPD; then
test_done
 fi
 
-LIB_HTTPD_PORT=${LIB_HTTPD_PORT-'5537'}
 . $TEST_DIRECTORY/lib-httpd.sh
 start_httpd
 
diff --git a/t/t5540-http-push.sh b/t/t5540-http-push.sh
index 5b0198c..8d7b3c5 100755
--- a/t/t5540-http-push.sh
+++ b/t/t5540-http-push.sh
@@ -16,7 +16,6 @@ then
 fi
 
 LIB_HTTPD_DAV=t
-LIB_HTTPD_PORT=${LIB_HTTPD_PORT-'5540'}
 . $TEST_DIRECTORY/lib-httpd.sh
 ROOT_PATH=$PWD
 start_httpd
diff --git a/t/t5541-http-push.sh b/t/t5541-http-push.sh
index bfd241e..73af16f 100755
--- a/t/t5541-http-push.sh
+++ b/t/t5541-http-push.sh
@@ -12,7 +12,6 @@ if test -n $NO_CURL; then
 fi
 
 ROOT_PATH=$PWD
-LIB_HTTPD_PORT=${LIB_HTTPD_PORT-'5541'}
 . $TEST_DIRECTORY/lib-httpd.sh
 . $TEST_DIRECTORY/lib-terminal.sh
 start_httpd
diff --git a/t/t5550-http-fetch.sh b/t/t5550-http-fetch.sh
index 8392624..1a3a2b6 100755
--- a/t/t5550-http-fetch.sh
+++ b/t/t5550-http-fetch.sh
@@ -8,7 +8,6 @@ if test -n $NO_CURL; then
test_done
 fi
 
-LIB_HTTPD_PORT=${LIB_HTTPD_PORT-'5550'}
 . $TEST_DIRECTORY/lib-httpd.sh
 start_httpd
 
diff --git a/t/t5551-http-fetch.sh b/t/t5551-http-fetch.sh
index a124efe..e07eaf3 100755
--- a/t/t5551-http-fetch.sh
+++ b/t/t5551-http-fetch.sh
@@ -8,7 +8,6 @@ if test -n $NO_CURL; then
test_done
 fi
 
-LIB_HTTPD_PORT=${LIB_HTTPD_PORT-'5551'}
 . $TEST_DIRECTORY/lib-httpd.sh
 start_httpd
 
diff --git a/t/t5561-http-backend.sh b/t/t5561-http-backend.sh
index b5d7fbc..d23fb02 100755
--- a/t/t5561-http-backend.sh
+++ b/t/t5561-http-backend.sh
@@ -8,7 +8,6 @@ if test -n $NO_CURL; then
test_done
 fi
 
-LIB_HTTPD_PORT=${LIB_HTTPD_PORT-'5561'}
 . $TEST_DIRECTORY/lib-httpd.sh
 start_httpd
 
-- 
1.8.5.2.500.g8060133

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info 

Re: [PATCH v3 00/26] inotify support

2014-02-10 Thread Torsten Bögershausen
On 2014-02-10 11.37, Duy Nguyen wrote:

 Could we use relative path names internally, relative to $GIT_DIR ?
 
 No because this is when the client tell the server about $GIT_DIR. I
 guess we can use realpath(1) here.
Good.

I realized that the watcher can watch several repos at the same time.

However, we could allow relative path names, which will be relative to 
$SOCKET_DIR,
and loosen the demand for an absolut path name a little bit.
And $SOCKET_DIR can be the same as $GIT_DIR, when we are watching only one repo.
 If you want I can update test-file-watcher to accept send and
 recv instead of  and , respectively. The only command with
 the same name for response and request is hello. I can make it
 hello and helloack (or bonjour as response?).

helloack looks good. 

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] bash completion: Add --recurse-submodules

2014-02-10 Thread Keshav Kini
Sup Yut Sum ch3co...@gmail.com writes:

 Signed-off-by: Sup Yut Sum ch3co...@gmail.com
 ---
  contrib/completion/git-completion.bash | 19 ++-
  1 file changed, 18 insertions(+), 1 deletion(-)

Aren't you missing a commit message?

-Keshav

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v5 02/14] trailer: process trailers from file and arguments

2014-02-10 Thread Junio C Hamano
Christian Couder chrisc...@tuxfamily.org writes:

 This is what if_exists and if_missing are all about.

 Either:

   the same key already exists regardless of the value

 and, in this case, what happens depends on what has been specified using
 the if_exists configuration variable.

 Or:

   the same key DOES NOT already exists regardless of the value

 and in this case, what happens depends on what has been specified
 using the if_missing configuration variable.

Hmm, how should things like signed-off-by be handled?  You may want
to allow many entries with the same key with distinct values, but
duplicated values may want to be handled differently (currently we
only avoid to place a duplicate key, value consecutively, but keys
with different semantics (e.g. fixes-bug: #bugid) may want to say
unless the same key with the same value exists, append it at the
end.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 6/6] fetch-pack: fix deepen shallow over smart http with no-done cap

2014-02-10 Thread Junio C Hamano
Duy Nguyen pclo...@gmail.com writes:

 On Fri, Feb 07, 2014 at 10:01:08AM -0800, Junio C Hamano wrote:
 Here is the difference between the posted series and what I queued
 after applying the changes suggested during the review.
 
 Thanks.

 I was going to send a reroll after the received comments. Could you
 put this on top of 6/6, just to make sure future changes in t5537
 (maybe more or less commits created..) does not change the test
 behavior?

 It fixes the test name too. I originally thought, ok let's create
 commits in one test and do fetch in another. But it ended up in the
 same test and I forgot to update test name.

Surely, and thanks for being careful.  Will squash it in.


 -- 8 --
 diff --git a/t/t5537-fetch-shallow.sh b/t/t5537-fetch-shallow.sh
 index 1413caf..b300383 100755
 --- a/t/t5537-fetch-shallow.sh
 +++ b/t/t5537-fetch-shallow.sh
 @@ -203,7 +203,7 @@ EOF
  # This test is tricky. We need large enough haves that fetch-pack
  # will put pkt-flush in between. Then we need a have the server
  # does not have, it'll send ACK %s ready
 -test_expect_success 'add more commits' '
 +test_expect_success 'no shallow lines after receiving ACK ready' '
   (
   cd shallow 
   for i in $(test_seq 10)
 @@ -224,7 +224,9 @@ test_expect_success 'add more commits' '
   cd clone 
   git checkout --orphan newnew 
   test_commit new-too 
 - git fetch --depth=2
 + GIT_TRACE_PACKET=$TRASH_DIRECTORY/trace git fetch --depth=2 
 + grep fetch-pack ACK .* ready ../trace 
 + ! grep fetch-pack done ../trace
   )
  '
  
 -- 8 -- 
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/6] t5538: fix default http port

2014-02-10 Thread Junio C Hamano
Jeff King p...@peff.net writes:

 Here it is as a Real Patch™. I just based it on master, so it can
 replace your 5537/5538 fix in your series.

Thanks, looks good.  Will put this at the bottom and rebuild the
nd/http-fetch-shallow-fix series on top.

   1. Is there anybody who has apache installed who would _not_ want to
  bring it up for the test?

   2. Is there anybody for whom the failure mode of bringing up apache
  would be unpleasant (e.g., if it hangs the tests or something)?

 For (1), we could perhaps have a GIT_NO_TEST_HTTPD to avoid it.

 For (2), I suspect we may need to make our error handling more robust,
 but getting people to run it is the first step to figuring out what the
 problems are.

 If we go this route, we should probably do the same for
 GIT_TEST_GIT_DAEMON in t5570 (and for that matter, we should probably do
 the same for the port numbers).

All good points.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: bash completion patch

2014-02-10 Thread Junio C Hamano
Thomas Rast t...@thomasrast.ch writes:

 Junio C Hamano gits...@pobox.com writes:

 Matthieu Moy matthieu@grenoble-inp.fr writes:

 [...]
 don't forget to Cc Junio if
 you think your patch is ready for inclusion.

 Heh, thanks.  Everybody seems to think anything they send out to the
 list is ready for inclusion, so the last part may not be a piece of
 advice that is practically very useful, though ;-)

 That happens to me a lot, too.  Perhaps it would be a clearer signal if
 you had an alias (or just something like gitster+patch) that we can send
 it to if we mean please include instead of what do you think of this?

The intention from regulars like you I can read from the tone of the
message (or if you want to you can mention it in the log message).

If a clearer signal is really needed, perhaps we should say
something like:

Send any patch that has not been reviewed on the list fist to
the list and area experts (you can learn who they are by running
git blame and git shortlog on the part of the system you are
touching) for review.  Once the patch gains list consensus that
it is a good change, and the maintainer hasn't picked it up
(perhaps it fell through cracks), resend it to the maintainer
with Cc: to the list.

We could phrase it more brutally:

If it is the first time a particular patch is sent to the list, it
almost always is not ready for inclusion.

but I do not think that is a good idea.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 2/2] gc: config option for running --auto in background

2014-02-10 Thread Junio C Hamano
Duy Nguyen pclo...@gmail.com writes:

 On Mon, Feb 10, 2014 at 6:03 PM, Erik Faye-Lund kusmab...@gmail.com wrote:
 `gc --auto` takes time and can block the user temporarily (but not any
 -   if (!quiet)
 -   fprintf(stderr,
 -   _(Auto packing the repository for 
 optimum performance. You may also\n
 -   run \git gc\ manually. See 
 -   \git help gc\ for more 
 information.\n));
 +   if (!quiet) {
 +   if (detach_auto)
 +   fprintf(stderr, _(Auto packing the 
 repository in background for optimum performance.\n));
 +   else
 +   fprintf(stderr, _(Auto packing the 
 repository for optimum performance.\n));
 +   fprintf(stderr, _(See \git help gc\ for manual 
 housekeeping.\n));
 +   }
 +   if (detach_auto)
 +   /*
 +* failure to daemonize is ok, we'll continue
 +* in foreground
 +*/
 +   daemonize();

 While I agree that it should be OK, shouldn't we warn the user?

 If --quiet is set, we should not be printing anyway. If not, I thinkg
 we could only print auto packing in background.. when we actually
 can do that, else just print the old message. It means an #ifdef
 NO_POSIX_GOODIES here again though..

Didn't you change it not to die but return nosys or something?
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 1/2] daemon: move daemonize() to libgit.a

2014-02-10 Thread Junio C Hamano
Nguyễn Thái Ngọc Duy  pclo...@gmail.com writes:

 diff --git a/setup.c b/setup.c
 index 6c3f85f..b09a412 100644
 --- a/setup.c
 +++ b/setup.c
 @@ -787,3 +787,27 @@ void sanitize_stdfds(void)
   if (fd  2)
   close(fd);
  }
 +
 +int daemonize(void)
 +{
 +#ifdef NO_POSIX_GOODIES
 + errno = -ENOSYS;

Negated?

 + return -1;
 +#else
 + switch (fork()) {
 + case 0:
 + break;
 + case -1:
 + die_errno(fork failed);
 + default:
 + exit(0);
 + }
 + if (setsid() == -1)
 + die_errno(setsid failed);
 + close(0);
 + close(1);
 + close(2);
 + sanitize_stdfds();
 + return 0;
 +#endif
 +}
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Documentation about push.default=upstream is confusing

2014-02-10 Thread Junio C Hamano
Ingo Rohloff lund...@gmx.de writes:

 To handle that I setup several remote tracking branches called:
   repo1_master   (tracks repo1/master)
   repo2_master   (tracks repo2/master)
   reap3_master   (tracks repo3/master)

 Now without push.default=upstream I would have to either always explicitly
 do something like:
   git push repo1 repo1_master:master
   git push repo2 repo2_master:master

If you think about your interaction with people who are only looking
at repo1 alone, you _are_ using a centralized workflow.  You are
not the only one who update their 'master'; other people push there
to update that 'master' and you pull it in to keep you up to date
and further build your changes on top.  Such an interaction with
other people by using repo1 as the shared meeting point is well
served by the push-to-upstream mechanism, and that kind of
interaction is called centralized workflow.  The illustration from
you is running one centralized workflow with each of the three
repositories.

The de-centralized workflow the message hints (but does not talk
about) is different.  It is not uncommon to pull from one place and
then to push the result out to your own publishing branch
(e.g. clone from anna, fetch to keep up to date with her, work on
it, publish to your repository to tell her to fetch from you), and
push-to-upstream is not very well suited for that topology.  You may
clone her for-bob branch, but you do not push it back to her
repository to update her for-bob branch.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/6] t5538: fix default http port

2014-02-10 Thread Jeff King
On Mon, Feb 10, 2014 at 02:15:24PM -0500, Jeff King wrote:

 Thanks. It might be worth squashing in the patch below (or sticking it
 on top), to cover git-daemon as well.

Patch would probably be easier to read if I actually included it...

-- 8 --
Subject: [PATCH] tests: auto-set git-daemon port

A recent commit taught lib-httpd to always start apache on
the same port as the numbered tests. Let's do the same for
the git-daemon tests.

Signed-off-by: Jeff King p...@peff.net
---
 t/lib-git-daemon.sh   | 2 +-
 t/t5570-git-daemon.sh | 1 -
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/t/lib-git-daemon.sh b/t/lib-git-daemon.sh
index 394b06b..1f22de2 100644
--- a/t/lib-git-daemon.sh
+++ b/t/lib-git-daemon.sh
@@ -22,7 +22,7 @@ then
test_done
 fi
 
-LIB_GIT_DAEMON_PORT=${LIB_GIT_DAEMON_PORT-'8121'}
+LIB_GIT_DAEMON_PORT=${LIB_GIT_DAEMON_PORT-${this_test#t}}
 
 GIT_DAEMON_PID=
 GIT_DAEMON_DOCUMENT_ROOT_PATH=$PWD/repo
diff --git a/t/t5570-git-daemon.sh b/t/t5570-git-daemon.sh
index e061468..6b16379 100755
--- a/t/t5570-git-daemon.sh
+++ b/t/t5570-git-daemon.sh
@@ -3,7 +3,6 @@
 test_description='test fetching over git protocol'
 . ./test-lib.sh
 
-LIB_GIT_DAEMON_PORT=${LIB_GIT_DAEMON_PORT-5570}
 . $TEST_DIRECTORY/lib-git-daemon.sh
 start_git_daemon
 
-- 
1.8.5.2.500.g8060133

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/6] t5538: fix default http port

2014-02-10 Thread Jeff King
On Mon, Feb 10, 2014 at 10:23:53AM -0800, Junio C Hamano wrote:

 Jeff King p...@peff.net writes:
 
  Here it is as a Real Patch™. I just based it on master, so it can
  replace your 5537/5538 fix in your series.
 
 Thanks, looks good.  Will put this at the bottom and rebuild the
 nd/http-fetch-shallow-fix series on top.

Thanks. It might be worth squashing in the patch below (or sticking it
on top), to cover git-daemon as well.

AFAICT, that leaves SVN_HTTPD_PORT, which we do not set by default at
all, and the p4 tests, which already do their own similar magic.

The set GIT_HTTPD_TESTS by default magic should probably go in a
separate series, so I'll roll them by themselves.

-Peff
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 2/2] gc: config option for running --auto in background

2014-02-10 Thread Junio C Hamano
On Mon, Feb 10, 2014 at 10:43 AM, Junio C Hamano gits...@pobox.com wrote:
 If --quiet is set, we should not be printing anyway. If not, I thinkg
 we could only print auto packing in background.. when we actually
 can do that, else just print the old message. It means an #ifdef
 NO_POSIX_GOODIES here again though..

 Didn't you change it not to die but return nosys or something?

Ah, the problem is that it is too late to take back ... will do so in
the background when you noticed that daemonize() did not succeed, so
you would need a way to see if we can daemonize() before actually
doing so if you want to give different messages.

int can_daemonize(void) could be an answer that is nicer than
NO_POSIX_GOODIES, but I am not sure if it is worth it.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] hashmap.h: make sure map entries are tightly packed

2014-02-10 Thread Junio C Hamano
Karsten Blees karsten.bl...@gmail.com writes:

 ... At the very least we shouldn't
 stall the rest of the patch series on a hunch that the last
 (unfortunately non-standard) patch may break on some legacy
 system.

Oh, no question about it.  I was planning split out the last one and
merge the rest to 'master' after the current cycle.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v5 02/14] trailer: process trailers from file and arguments

2014-02-10 Thread Christian Couder
From: Junio C Hamano gits...@pobox.com
Subject: Re: [PATCH v5 02/14] trailer: process trailers from file and arguments
Date: Mon, 10 Feb 2014 10:14:34 -0800

 Christian Couder chrisc...@tuxfamily.org writes:
 
 This is what if_exists and if_missing are all about.

 Either:

  the same key already exists regardless of the value

 and, in this case, what happens depends on what has been specified using
 the if_exists configuration variable.

 Or:

  the same key DOES NOT already exists regardless of the value

 and in this case, what happens depends on what has been specified
 using the if_missing configuration variable.
 
 Hmm, how should things like signed-off-by be handled?  You may want
 to allow many entries with the same key with distinct values, but
 duplicated values may want to be handled differently (currently we
 only avoid to place a duplicate key, value consecutively, but keys
 with different semantics (e.g. fixes-bug: #bugid) may want to say
 unless the same key with the same value exists, append it at the
 end.

Many entries with the same key but distinct values can be configured
using:

if_exists = add_if_different
if_missing = add

Many entries with the same key but values that can be the same can be
configured using:

if_exists = add
if_missing = add

The place where the trailers are added, if they should be added, can
be selected using either where = after, the default, or where =
before.

where = after means just after trailers with the same key, or, if
there are no trailers with the same key, after all the existing
trailers.

where = before means just before trailers with the same key, or, if
there are no trailers with the same key, before all the existing
trailers.

I think that this is enough to handle most of the usual cases, but we
can add other more complex options later, as I said in the last
message of this thread:

http://thread.gmane.org/gmane.comp.version-control.git/237278/

Thanks,
Christian.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v5 02/14] trailer: process trailers from file and arguments

2014-02-10 Thread Junio C Hamano
Christian Couder chrisc...@tuxfamily.org writes:

 Many entries with the same key but distinct values can be configured
 using:

 if_exists = add_if_different
 if_missing = add

 Many entries with the same key but values that can be the same can be
 configured using:

 if_exists = add
 if_missing = add

While the above certainly can express the combinations, I am still
puzzled about the value of having under this condition (i.e.
if-exists/if-missing) and do this (i.e. add/add-if-different) as
two separate concepts.

If you do not have an existing entry with the same key, no new entry
can be the same as an existing one---therefore, the former allow
only distinct values for the same key can just say

  trailer.Fixes.action = add_if_different

or something, without any if_exists/if_missing.  In a similar way,
the latter duplicated values allowed for the same key can say

  trailer.Sob.action = add

You can throw into the mix other actions like add_if_missing, you
can also express only one value allowed for the same key---the
first one wins, replace to mean replace if there is one with the
same key, and replace_or_add to mean same as 'replace', but add
if there is no existing entries with the same key.  Will we lose
expressiveness by simplifying the semantics, getting rid of this
under this condition part and instead making do this part more
intelligent?

Even if we assume, for the sake of discussion, that it *is* a good
idea to separate under this condition part and do this part, I
do not think the above is the only or the best way to express
distinct values allowed for the same key.  How do we argue that
this from your example

  if_exists = add_if_different
  if_missing = add

is a better design than this, for example?

  if_key_value_exists = ignore ; exact matching key,val exists
  if_key_exists = add  ; otherwise
  if_missing = add

The latter splits remaining conditional logic from do this part
(no more add_if_different that causes add action to see if there
is the same key and act differently) and moves it to under this
condition part.

I am trying to illustrate that the line to split the under this
condition and do this looks arbitrary and fuzzy here, and because
of this arbitrary-ness and fuzziness, it is not very obvious to me
why it is a good idea to have under this condition as a separate
concept from do this settings.

What is the advantage of having such an extra axis?  Does it make it
easier to manage?  Does it allow us to express more?

I can see that the location where a new entry (or a duplicated one)
is added (i.e. do we prepend? do we append?) can be orthogonal to
any of the above; no need to bring up 'where' in the discussion.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/4] docs/merge-strategies: remove hyphen from mis-merges

2014-02-10 Thread Junio C Hamano
Thanks.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GIT PULL] l10n updates for 1.9.0 round 2

2014-02-10 Thread Junio C Hamano
Thansk.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] tests: turn on network daemon tests by default

2014-02-10 Thread Jeff King
We do not run the httpd nor git-daemon tests by default, as
they are rather heavyweight and require network access
(albeit over localhost). However, it would be nice if more
pepole ran them, for two reasons:

  1. We would get more test coverage on more systems.

  2. The point of the test suite is to find regressions. It
 is very easy to change some of the underlying code and
 break the httpd code without realizing you are even
 affecting it. Running the httpd tests helps find these
 problems sooner (ideally before the patches even hit
 the list).

We still want to leave an out, though, for people who
really do not want to run them. For that reason, the
GIT_TEST_HTTPD and GIT_TEST_GIT_DAEMON variables are now
tri-state booleans (true/false/auto), so you can say
GIT_TEST_HTTPD=false to turn the tests back off.

In addition, we are forgiving of common setup failures
(e.g., you do not have apache installed, or have an old
version) when the tri-state is auto (or empty), but report
an error when it is true. This makes auto a sane
default, as we should not cause failures on setups where the
tests cannot run. But it allows people who use true to
catch regressions in their system (e.g., they uninstalled
apache, but were expecting their automated test runs to test
git-httpd, and would want to be notified).

Signed-off-by: Jeff King p...@peff.net
---

I dug in the history to see if there was any reasoning given for the
current off by default setting. It looks like Junio asked for it when
the original http-push tests were added, and everything else just
followed that. The reasoning there was basically they're heavyweight
and we might not be able to run them, but hopefully having the option
variable will make that OK.

 t/lib-git-daemon.sh |  8 +---
 t/lib-httpd.sh  | 22 +++---
 t/test-lib-functions.sh | 44 
 3 files changed, 60 insertions(+), 14 deletions(-)

diff --git a/t/lib-git-daemon.sh b/t/lib-git-daemon.sh
index 1f22de2..e623bef 100644
--- a/t/lib-git-daemon.sh
+++ b/t/lib-git-daemon.sh
@@ -16,9 +16,10 @@
 #  stop_git_daemon
 #  test_done
 
-if test -z $GIT_TEST_GIT_DAEMON
+GIT_TEST_GIT_DAEMON=$(test_tristate $GIT_TEST_GIT_DAEMON)
+if test $GIT_TEST_GIT_DAEMON = false
 then
-   skip_all=git-daemon testing disabled (define GIT_TEST_GIT_DAEMON to 
enable)
+   skip_all=git-daemon testing disabled (unset GIT_TEST_GIT_DAEMON to 
enable)
test_done
 fi
 
@@ -58,7 +59,8 @@ start_git_daemon() {
kill $GIT_DAEMON_PID
wait $GIT_DAEMON_PID
trap 'die' EXIT
-   error git daemon failed to start
+   test_skip_or_die $GIT_TEST_GIT_DAEMON \
+   git daemon failed to start
fi
 }
 
diff --git a/t/lib-httpd.sh b/t/lib-httpd.sh
index b43162e..bb900ca 100644
--- a/t/lib-httpd.sh
+++ b/t/lib-httpd.sh
@@ -30,9 +30,10 @@
 # Copyright (c) 2008 Clemens Buchacher dri...@aon.at
 #
 
-if test -z $GIT_TEST_HTTPD
+GIT_TEST_HTTPD=$(test_tristate $GIT_TEST_HTTPD)
+if test $GIT_TEST_HTTPD = false
 then
-   skip_all=Network testing disabled (define GIT_TEST_HTTPD to enable)
+   skip_all=Network testing disabled (unset GIT_TEST_HTTPD to enable)
test_done
 fi
 
@@ -76,8 +77,7 @@ GIT_VALGRIND_OPTIONS=$GIT_VALGRIND_OPTIONS; export 
GIT_VALGRIND_OPTIONS
 
 if ! test -x $LIB_HTTPD_PATH
 then
-   skip_all=skipping test, no web server found at '$LIB_HTTPD_PATH'
-   test_done
+   test_skip_or_die $GIT_TEST_HTTPD no web server found at 
'$LIB_HTTPD_PATH'
 fi
 
 HTTPD_VERSION=`$LIB_HTTPD_PATH -v | \
@@ -89,19 +89,20 @@ then
then
if ! test $HTTPD_VERSION -ge 2
then
-   skip_all=skipping test, at least Apache version 2 is 
required
-   test_done
+   test_skip_or_die $GIT_TEST_HTTPD \
+   at least Apache version 2 is required
fi
if ! test -d $DEFAULT_HTTPD_MODULE_PATH
then
-   skip_all=Apache module directory not found.  Skipping 
tests.
-   test_done
+   test_skip_or_die $GIT_TEST_HTTPD \
+   Apache module directory not found
fi
 
LIB_HTTPD_MODULE_PATH=$DEFAULT_HTTPD_MODULE_PATH
fi
 else
-   error Could not identify web server at '$LIB_HTTPD_PATH'
+   test_skip_or_die $GIT_TEST_HTTPD \
+   Could not identify web server at '$LIB_HTTPD_PATH'
 fi
 
 prepare_httpd() {
@@ -155,9 +156,8 @@ start_httpd() {
3 24
if test $? -ne 0
then
-   skip_all=skipping test, web server setup failed
trap 'die' EXIT
-   test_done
+   test_skip_or_die $GIT_TEST_HTTPD web server setup failed
fi
 }
 
diff --git 

Re: [PATCH v2 1/2] daemon: move daemonize() to libgit.a

2014-02-10 Thread Duy Nguyen
On Tue, Feb 11, 2014 at 1:46 AM, Junio C Hamano gits...@pobox.com wrote:
 Nguyễn Thái Ngọc Duy  pclo...@gmail.com writes:

 diff --git a/setup.c b/setup.c
 index 6c3f85f..b09a412 100644
 --- a/setup.c
 +++ b/setup.c
 @@ -787,3 +787,27 @@ void sanitize_stdfds(void)
   if (fd  2)
   close(fd);
  }
 +
 +int daemonize(void)
 +{
 +#ifdef NO_POSIX_GOODIES
 + errno = -ENOSYS;

 Negated?

Facepalm. I remember I wrote this somewhere but don't remember what
topic :( Should I resend?
-- 
Duy
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v3 00/26] inotify support

2014-02-10 Thread Duy Nguyen
On Mon, Feb 10, 2014 at 11:55 PM, Torsten Bögershausen tbo...@web.de wrote:
 On 2014-02-10 11.37, Duy Nguyen wrote:

 Could we use relative path names internally, relative to $GIT_DIR ?

 No because this is when the client tell the server about $GIT_DIR. I
 guess we can use realpath(1) here.
 Good.

 I realized that the watcher can watch several repos at the same time.

 However, we could allow relative path names, which will be relative to 
 $SOCKET_DIR,
 and loosen the demand for an absolut path name a little bit.
 And $SOCKET_DIR can be the same as $GIT_DIR, when we are watching only one 
 repo.

It does not help much anyway because file-watcher-lib.c sends
get_git_work_tree(), which is absolute/normalized path, to
file-watcher. There's no sources of sending $GIT_DIR relative to
$SOCKET_DIR (and I don't think we want to make get_git_work_tree()
relative before sending, it's more work on both sides we no benefits,
except for tracing).
-- 
Duy
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 3/4] docs/git-clone: clarify use of --no-hardlinks option

2014-02-10 Thread Junio C Hamano
Albert L. Lash, IV albert.l...@gmail.com writes:

 Current text claims optimization, implying the use of
 hardlinks, when this option ratchets down the level of
 efficiency. This change explains the difference made by
 using this option, namely copying instead of hardlinking,
 and why it may be useful.

 Signed-off-by: Albert L. Lash, IV ala...@bloomberg.net
 ---
  Documentation/git-clone.txt | 11 ---
  1 file changed, 4 insertions(+), 7 deletions(-)

 diff --git a/Documentation/git-clone.txt b/Documentation/git-clone.txt
 index bf3dac0..0363d00 100644
 --- a/Documentation/git-clone.txt
 +++ b/Documentation/git-clone.txt
 @@ -55,15 +55,12 @@ repository is specified as a URL, then this flag is 
 ignored (and we
  never use the local optimizations).  Specifying `--no-local` will
  override the default when `/path/to/repo` is given, using the regular
  Git transport instead.
 -+
 -To force copying instead of hardlinking (which may be desirable if you
 -are trying to make a back-up of your repository), but still avoid the
 -usual Git aware transport mechanism, `--no-hardlinks` can be used.
  
  --no-hardlinks::
 - Optimize the cloning process from a repository on a
 - local filesystem by copying files under `.git/objects`
 - directory.
 + Force the cloning process from a repository on a local
 + filesystem to copy the files under the `.git/objects`
 + directory instead of using hardlinks. This may be desirable
 + if you are trying to make a back-up of your repository.

Makes sense, and it is kind of embarrassing (I have to suspect that
this was originally the description of --hardlinks option).

[PATCH {1,2}/4] looked trivially correct, too.

Thanks.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 4/4] docs/git-blame: explain more clearly the example pickaxe use

2014-02-10 Thread Junio C Hamano
Albert L. Lash, IV albert.l...@gmail.com writes:

 We state that the following paragraph mentions the pickaxe
 interface, but the term pickaxe is not then used. This
 change clarifies that the example command uses the pickaxe
 interface and what it is searching for.

 Signed-off-by: Albert L. Lash, IV ala...@bloomberg.net
 ---
  Documentation/git-blame.txt | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

 diff --git a/Documentation/git-blame.txt b/Documentation/git-blame.txt
 index 8e70a61..ddb88d0 100644
 --- a/Documentation/git-blame.txt
 +++ b/Documentation/git-blame.txt
 @@ -35,7 +35,8 @@ Apart from supporting file annotation, Git also supports 
 searching the
  development history for when a code snippet occurred in a change. This makes 
 it
  possible to track when a code snippet was added to a file, moved or copied
  between files, and eventually deleted or replaced. It works by searching for
 -a text string in the diff. A small example:
 +a text string in the diff. A small example of the pickaxe interface 
 +that searches for `blame_usage`:
  
  -
  $ git log --pretty=oneline -S'blame_usage'

Thanks.

I cannot shake this nagging feeling that this and the latter half of
the previous paragraph may not belong to this page, though.

Will queue.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v4 7/9] rebase: parse options in stuck-long mode

2014-02-10 Thread brian m. carlson
On Mon, Feb 10, 2014 at 01:59:02AM -0500, Eric Sunshine wrote:
 On Sun, Feb 9, 2014 at 8:03 PM, brian m. carlson
 sand...@crustytoothpaste.net wrote:
  From: Nicolas Vigier bo...@mars-attacks.org
 
  There is no functionnal change. The reason for this change is to be able
 
 s/functionnal/functional/

I could have sworn I fixed that typo in the commit message.  No, that
was a different patch with the same typo.  Sorry about that; I should
have double-checked.  I'm going to wait another day or so to see if
anyone thinks other changes are needed, and then I'll do a reroll.

-- 
brian m. carlson / brian with sandals: Houston, Texas, US
+1 832 623 2791 | http://www.crustytoothpaste.net/~bmc | My opinion only
OpenPGP: RSA v4 4096b: 88AC E9B2 9196 305B A994 7552 F1BA 225C 0223 B187


signature.asc
Description: Digital signature


Re: [PATCH 00/11] More preparatory work for multiparent tree-walker

2014-02-10 Thread Junio C Hamano
Kirill Smelkov k...@mns.spb.ru writes:

 Here I'm preparing tree-diff.c to be ready for the new tree-walker, so that 
 the
 final change is tractable and looks good and non noisy. Some small speedups
 are gained along the way. The final bits are almost ready, but I don't want to
 release them in a hurry.

No worries.  We are not in a hurry to apply non-regression-fix
changes during a pre-release feature freeze period anyway.

This seems to somehow conflict with other topics and does not
cleanly apply on top of your other tree-diff topic, by the way.


--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html