This closes the memory leaks as pointed out by Jeff.
Signed-off-by: Stefan Beller sbel...@google.com
---
builtin/submodule--helper.c | 11 +++
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c
index ae74b80..7e298b4
This runs a command on each submodule in parallel and should eventually
replace `git submodule foreach`.
There is a new option -j/--jobs (inspired by make) to specify the number
of parallel threads.
The jobs=1 case needs to be special cases to exactly replicate the current
default behavior of
Nguyễn Thái Ngọc Duy pclo...@gmail.com writes:
The cached blob of i-t-a entries are empty blob. By checkout, we delete
the content we have. Don't do it.
This is done higher up instead of inside checkout_entry() because we
would have limited options in there: silently ignore, loudly ignore,
This adds functionality to do work in a parallel threaded
fashion while the boiler plate code for setting up threads
and tearing them down as well as queuing up tasks is hidden
behind the new API.
Signed-off-by: Stefan Beller sbel...@google.com
---
run-command.c | 29 ---
thread-utils.c |
Before we had n threads doing the delta finding work, and the main thread
was load balancing the threads, i.e. moving work from a thread with a large
amount left to an idle thread whenever such a situation arose.
This moves the load balancing to the threads themselves. As soon as one
thread is
By treating each object as its own task the workflow is easier to follow
as the function used in the worker threads doesn't need any control logic
any more.
Signed-off-by: Stefan Beller sbel...@google.com
---
builtin/index-pack.c | 71 +++-
1 file
This series build on top of origin/sb/submodule-helper.
The first patch is a fixup to the last commit in the target branch
to fix a memory leak. The patch is not really part of the series, but
as I chose to build on top of that series I can fix it up as we go.
The patch 2 adds a new API to easily
Nguyễn Thái Ngọc Duy pclo...@gmail.com writes:
The expression !S_ISREG(ce) covers i-t-a entries as well because
ce-ce_mode would be zero then. I could make a comment saying that, but
it's probably better just to comment with code, in case i-t-a entry
content changes in future.
OK. Thansk.
Nguyễn Thái Ngọc Duy pclo...@gmail.com writes:
The expression !S_ISREG(ce) covers i-t-a entries as well because
ce-ce_mode would be zero then. I could make a comment saying that, but
it's probably better just to comment with code, in case i-t-a entry
content changes in future.
OK. Thanks.
Nguyễn Thái Ngọc Duy pclo...@gmail.com writes:
While commit 9f673f9 (gc: config option for running --auto in
background - 2014-02-08) helps reduce some complaints about 'gc
--auto' hogging the terminal, it creates another set of problems.
The latest in this set is, as the result of
Matthieu Moy matthieu@grenoble-inp.fr writes:
Junio C Hamano gits...@pobox.com writes:
You can see that I expected that if !state.stack-prev check to be
inside append_atom(), and I would imagine future readers would have
the same expectation when reading this code. I.e.
Karthik Nayak karthik@gmail.com writes:
I like the idea of using atomv-handler() a lot, mostly cause this
would eventually
help us clean up populate_atom() which currently seems like a huge dump of
code.
I think you already said that last time we had this discussion ;-)
Nguyễn Thái Ngọc Duy pclo...@gmail.com writes:
Applying a patch that adds a file when that file is registered with git
add -N will fail with message already exists in index because
git-apply checks, sees those i-t-a entries and aborts. git-apply does
not realize those are for bookkeeping
Jeff King p...@peff.net writes:
On Mon, Aug 24, 2015 at 01:58:06PM -0700, Junio C Hamano wrote:
We forgot to terminate the payload given to write_file() with LF,
resulting in files that end with an incomplete line. Teach the
wrappers builtin/am uses to make sure it adds LF at the end as
On Tue, Aug 25, 2015 at 05:01:01PM +0200, Gabor Bernat wrote:
So it would be great if the filter-branch beside the Rewrite
f8f0b351ae35ff7ac4bd58078cbba1aa34243779 (523/22625), would also
append a basic ETA signaling the end of the operation.
It could be as simple as the the average number
Nguyễn Thái Ngọc Duy pclo...@gmail.com writes:
I renamed both flags and touched_flags fields while making this
patch to make sure I was aware of how these flags were manipulated
(besides DIFF_OPT* macros). So hopefully I didn't miss anything.
It is a bad taste to use user_defined_t typedef
I'm working on porting over the printing options of ref-filter to `git
branch -l`.
This is a follow up to
http://article.gmane.org/gmane.comp.version-control.git/276377
Theres a slight issue with this which I'd like to discuss about.
When we use `-a` option in `git branch -l`
It lists local
On 08/25/2015 12:32 PM, John Keeping wrote:
On Tue, Aug 25, 2015 at 12:16:43PM +0200, Rafik E Younan wrote:
I got a recommendation to use reset --hard. I tried it and it says the
HEAD is now at correct commit, but missing files are not restored!
I tried `ls-tree --name-only` and it lists
On Tue, Aug 25, 2015 at 1:01 AM, Graeme Geldenhuys grae...@gmail.com wrote:
Even though I have worked with Git since 2009, I still have to
reference the help to remind me of what parameter to use in certain
situation simply because similar tasks differ so much.
Maybe we could address this in
Hello,
So it would be great if the filter-branch beside the Rewrite
f8f0b351ae35ff7ac4bd58078cbba1aa34243779 (523/22625), would also
append a basic ETA signaling the end of the operation.
It could be as simple as the the average number of milliseconds per
step up to this point multiplied with
Nguyễn Thái Ngọc Duy pclo...@gmail.com writes:
This code is introduced in 23af91d (prune: strategies for linked
checkouts - 2014-11-30), and it's supposed to implement this rule from
that commit's message:
- linked checkouts are supposed to keep its location in $R/gitdir up
to date.
On Tue, Aug 25, 2015 at 09:19:13AM -0700, Junio C Hamano wrote:
As to flags exposed to callers vs with and without gently, when
we change the system to allow new modes of operations (e.g. somebody
wants to write a binary file, or allocate more flag bits for their
special case), I'd expect
Lars Vogel lars.vo...@vogella.com writes:
http://git-scm.com/docs/git-clone speaks only about working tree, the
usage of working directory for working tree is confusing. Working
directory describes the current directory while working tree describes
all files and sub directories.
Actually I
Nguyễn Thái Ngọc Duy pclo...@gmail.com writes:
The test case probably describes the test scenario the best. We have a
patch to modify some file but the base file is gone. Because
check_preimage() finds an index entry with the same old_name, it tries
to restore the on-disk base file with
On Tue, Aug 25, 2015 at 1:21 AM, Jeff King p...@peff.net wrote:
On Mon, Aug 24, 2015 at 12:11:13PM -0400, Aaron Dufour wrote:
I use git (2.2.1) on OS X (10.9.5) and recently my repo got into a bad
state. I think this involves a mis-handling of case-insensitive file
systems.
This reproduces
On Tue, Aug 25, 2015 at 4:43 PM, Junio C Hamano gits...@pobox.com wrote:
Stefan Beller sbel...@google.com writes:
$ git tag --delete master
$ echo $?
# 0 # actually works as of today!
$ git tag delete master
# Due to the planned switch to command words, this doesn't work.
# For
Hi git guys,
The bug is fairly simple: if we have a conflicted merge, AND all the
conflicts have been resolved to the version in HEAD, the commit
--dry-run error code says nothing to commit. As expected, git commit
goes through.
The commit message IS correct (-ish), just not the error code:
When looking for the start of the trailers in the message
we are passed, we should ignore the first line of the message.
The reason is that if we are passed a patch or commit message
then the first line should be the patch title.
If we are passed only trailers we can expect that they start
with
We currently ignore the first line passed to `git interpret-trailers`,
when looking for the beginning of the trailers.
Unfortunately this does not work well when a commit is created with a
line break in the title, using for example the following command:
git commit -m 'place of
code: change we
On Wed, Aug 26, 2015 at 12:46 AM, Junio C Hamano gits...@pobox.com wrote:
Karthik Nayak karthik@gmail.com writes:
Here is what I see...
ok 98 - verifying rfc1991 signature
expecting success:
echo rfc1991 gpghome/gpg.conf
echo rfc1991-signed-tag RFC1991 signed tag
On 08/25/2015 08:54 AM, Luke Diamand wrote:
On 24/08/15 22:30, larsxschnei...@gmail.com wrote:
From: Lars Schneider larsxschnei...@gmail.com
Thanks to Luke Diamand I realized the core problem and propose here a
substiantially simpler fix to my PATCH v4.
The test cases remain and prove the
On 25 Aug 2015, at 08:54, Luke Diamand l...@diamand.org wrote:
On 24/08/15 22:30, larsxschnei...@gmail.com wrote:
From: Lars Schneider larsxschnei...@gmail.com
Thanks to Luke Diamand I realized the core problem and propose here a
substiantially simpler fix to my PATCH v4.
The test cases
On 24/08/15 22:30, larsxschnei...@gmail.com wrote:
From: Lars Schneider larsxschnei...@gmail.com
Thanks to Luke Diamand I realized the core problem and propose here a
substiantially simpler fix to my PATCH v4.
The test cases remain and prove the problem. In particular
8 - Clone path
Hi,
I've used Git for years and this has always bothered me. Has anybody
else noticed the inconsistent command line parameteres for seemingly
similar tasks. There are many examples, but I'll list only two (I can
supply a more extensive list if needed).
eg: Renaming things.
* When working with
Junio C Hamano gits...@pobox.com writes:
You can see that I expected that if !state.stack-prev check to be
inside append_atom(), and I would imagine future readers would have
the same expectation when reading this code. I.e.
append_atom(struct atom_value *v, struct ref_f_s *state)
On 25/08/15 14:14, Lars Schneider wrote:
So the choices are:
1. A new command-line option which would silently set core.ignorecase
2. Users just have to know to set core.ignorecase manually before
using git-p4 (i.e. Lars' patch v5)
3. Fix fast-import to take a --casefold option (but that's a
Jeff King p...@peff.net writes:
+start=$(date +%s)
Is that a GNU extension?
git_filter_branch__commit_count=0
while read commit parents; do
git_filter_branch__commit_count=$(($git_filter_branch__commit_count+1))
- printf \rRewrite $commit
Jeff King p...@peff.net writes:
On Tue, Aug 25, 2015 at 09:19:13AM -0700, Junio C Hamano wrote:
As to flags exposed to callers vs with and without gently, when
we change the system to allow new modes of operations (e.g. somebody
wants to write a binary file, or allocate more flag bits for
Karthik Nayak karthik@gmail.com writes:
I'm working on porting over the printing options of ref-filter to `git
branch -l`.
This is a follow up to
http://article.gmane.org/gmane.comp.version-control.git/276377
Theres a slight issue with this which I'd like to discuss about.
When we use
Karthik Nayak karthik@gmail.com writes:
Here is what I see...
ok 98 - verifying rfc1991 signature
expecting success:
echo rfc1991 gpghome/gpg.conf
echo rfc1991-signed-tag RFC1991 signed tag expect
git tag -l -n1 rfc1991-signed-tag actual
test_cmp
On Tue, Aug 25, 2015 at 11:33:49AM -0700, Junio C Hamano wrote:
Jeff King p...@peff.net writes:
+start=$(date +%s)
Is that a GNU extension?
Thanks, I meant to mention that, too. POSIX has + formats, but
apparently no way to get an integer number of seconds. I don't know how
widely %s is
On Tue, Aug 25, 2015 at 10:28:25AM -0700, Stefan Beller wrote:
By treating each object as its own task the workflow is easier to follow
as the function used in the worker threads doesn't need any control logic
any more.
Have you tried running t/perf/p5302 on this?
I seem to get a pretty
On Tue, Aug 25, 2015 at 02:52:10PM -0400, Jeff King wrote:
Yeah, that would probably be a good solution, assuming there is a
portable how many seconds (I do not relish the thought of
reconstructing it based on the current hours/minutes/seconds).
A little googling came up with:
awk 'END {
On Tue, Aug 25, 2015 at 1:41 AM, Junio C Hamano gits...@pobox.com wrote:
Junio C Hamano gits...@pobox.com writes:
All callers except for two ask this function to die upon error by
passing fatal=1; turn the parameter to a more generic unsigned flag
bag of bits, introduce an explicit
On Tue, Aug 25, 2015 at 3:26 AM, Junio C Hamano gits...@pobox.com wrote:
Karthik Nayak karthik@gmail.com writes:
+static void push_new_stack_element(struct ref_formatting_stack **stack)
+{
Micronit. Perhaps s/_new//;, as you do not call the other function
pop_old_stack_element().
The
Hi,
I got a recommendation to use reset --hard. I tried it and it says the
HEAD is now at correct commit, but missing files are not restored!
I tried `ls-tree --name-only` and it lists missing files and folders,
but the actual working tree doesn't have these files and folders.
The question
This code is introduced in 23af91d (prune: strategies for linked
checkouts - 2014-11-30), and it's supposed to implement this rule from
that commit's message:
- linked checkouts are supposed to keep its location in $R/gitdir up
to date. The use case is auto fixup after a manual checkout move.
On Tue, Aug 25, 2015 at 12:16:43PM +0200, Rafik E Younan wrote:
I got a recommendation to use reset --hard. I tried it and it says the
HEAD is now at correct commit, but missing files are not restored!
I tried `ls-tree --name-only` and it lists missing files and folders,
but the actual
On 25 Aug 2015, at 10:33, Torsten Bögershausen tbo...@web.de wrote:
On 08/25/2015 08:54 AM, Luke Diamand wrote:
On 24/08/15 22:30, larsxschnei...@gmail.com wrote:
From: Lars Schneider larsxschnei...@gmail.com
Thanks to Luke Diamand I realized the core problem and propose here a
On Tue, Aug 25, 2015 at 2:49 PM, Jacob Keller jacob.kel...@gmail.com wrote:
On Tue, Aug 25, 2015 at 8:13 AM, Junio C Hamano gits...@pobox.com wrote:
On Tue, Aug 25, 2015 at 1:01 AM, Graeme Geldenhuys grae...@gmail.com wrote:
Even though I have worked with Git since 2009, I still have to
On Tue, Aug 25, 2015 at 3:06 PM, Stefan Beller sbel...@google.com wrote:
On Tue, Aug 25, 2015 at 2:49 PM, Jacob Keller jacob.kel...@gmail.com wrote:
On Tue, Aug 25, 2015 at 8:13 AM, Junio C Hamano gits...@pobox.com wrote:
On Tue, Aug 25, 2015 at 1:01 AM, Graeme Geldenhuys grae...@gmail.com
Stefan Beller sbel...@google.com writes:
+ while (1) {
+ ssize_t len = xread(cp-err, buf, sizeof(buf));
+ if (len 0)
+ die(Read from child failed);
+ else if (len == 0)
+ break;
+ else {
+
On Tue, Aug 25, 2015 at 2:12 PM, Junio C Hamano gits...@pobox.com wrote:
Stefan Beller sbel...@google.com writes:
Not sure I follow there.
Original implementation:
We have M threads sitting around the table, all of them trying to obtain food
from the one bowl on the table and then eating
Jeff King p...@peff.net writes:
On Tue, Aug 25, 2015 at 10:28:25AM -0700, Stefan Beller wrote:
By treating each object as its own task the workflow is easier to follow
as the function used in the worker threads doesn't need any control logic
any more.
Have you tried running t/perf/p5302 on
On Tue, Aug 25, 2015 at 12:03 PM, Jeff King p...@peff.net wrote:
On Tue, Aug 25, 2015 at 10:28:25AM -0700, Stefan Beller wrote:
By treating each object as its own task the workflow is easier to follow
as the function used in the worker threads doesn't need any control logic
any more.
Have
Nguyễn Thái Ngọc Duy pclo...@gmail.com writes:
Signed-off-by: Nguyễn Thái Ngọc Duy pclo...@gmail.com
Because? Title just tells what the patch meant to do (i.e. instead
of returning it keeps looping), but does not say why it is a good
idea. Besides, this a no-op patch and does not make it
Junio C Hamano gits...@pobox.com writes:
A less ambitious option might be:
3. Invent %(refname:some magic) format similar to
%(refname:short) but does your thing depending on the prefix
refs/heads/ and refs/remotes/.
Actually, this is the option I suggest offline.
but that
From: Brilliantov Kirill Vladimirovich brillian...@inbox.ru
Signed-off-by: Brilliantov Kirill Vladimirovich brillian...@inbox.ru
---
compat/inet_ntop.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/compat/inet_ntop.c b/compat/inet_ntop.c
index 90b7cc4..fcd3b15 100644
On 25/08/15 11:30, larsxschnei...@gmail.com wrote:
Unfortunately the command line option is not sufficient as the resulting
paths are still messed up. I added the switch but it looks like as
core.ignorecase does some additional magic on fast-import. You can see my
changes here:
On Wed, 2015-08-19 at 20:01 +0700, Nguyễn Thái Ngọc Duy wrote:
First, the current code in untracked_cache_invalidate_path() is wrong
because it can only handle paths a or a/b, not a/b/c because
lookup_untracked() only looks for entries directly under the given
directory. In the last case, it
Junio C Hamano gits...@pobox.com writes:
I didn't check how wide the original is supposed to be, but perhaps
changing builtin/tag.c this way
if (filter-lines)
- format = %(align:16,left)%(refname:short)%(end);
+ format =
I would lean for an extra on-demand flag for this, and a per commit
measurement, initial noise is okay for the first iteration I think.
Secondly note that on the output other messages could also be present
(other than the rewrite), as the command running may have its own
output. I will try to
David Turner dtur...@twopensource.com writes:
On Wed, 2015-08-19 at 20:01 +0700, Nguyễn Thái Ngọc Duy wrote:
First, the current code in untracked_cache_invalidate_path() is wrong
because it can only handle paths a or a/b, not a/b/c because
lookup_untracked() only looks for entries directly
On Tue, Aug 25, 2015 at 2:54 PM, Jeff King p...@peff.net wrote:
On Tue, Aug 25, 2015 at 02:52:10PM -0400, Jeff King wrote:
Yeah, that would probably be a good solution, assuming there is a
portable how many seconds (I do not relish the thought of
reconstructing it based on the current
Matthieu Moy matthieu@grenoble-inp.fr writes:
Hmm, yes, colors would be difficult to get with this solution. Perhaps a
%(refname:autoprefix,autocolor) that would pick the color and do the
textual rendering?
Yeah, that's workable.
--
To unsubscribe from this list: send the line unsubscribe
On Tue, Aug 25, 2015 at 1:41 PM, Junio C Hamano gits...@pobox.com wrote:
Jeff King p...@peff.net writes:
On Tue, Aug 25, 2015 at 10:28:25AM -0700, Stefan Beller wrote:
By treating each object as its own task the workflow is easier to follow
as the function used in the worker threads doesn't
Brian thanks for responding! I'm finally able to build git completely.
Would it be possible to add the OS X dependency to the git/INSTALL
file?
Jeff
OSX Yosemite 10.10.5
Xcode 6.4 (6E35b)
…
$ brew install autoconf
$ brew install asciidoc
$ brew install xmlto
$ brew install docbook
$ export
On Tue, Aug 25, 2015 at 3:54 AM, Junio C Hamano gits...@pobox.com wrote:
Karthik Nayak karthik@gmail.com writes:
From: Karthik Nayak karthik@gmail.com
Add a function called 'for_each_reftype_fullpath()' to refs.{c,h}
which iterates through each ref for the given path without trimming
On 25 Aug 2015, at 13:57, Luke Diamand l...@diamand.org wrote:
On 25/08/15 11:30, larsxschnei...@gmail.com wrote:
Unfortunately the command line option is not sufficient as the resulting
paths are still messed up. I added the switch but it looks like as
core.ignorecase does some
On Tue, Aug 25, 2015 at 4:04 AM, Junio C Hamano gits...@pobox.com wrote:
Matthieu Moy matthieu@grenoble-inp.fr writes:
Karthik Nayak karthik@gmail.com writes:
diff --git a/Documentation/git-for-each-ref.txt
b/Documentation/git-for-each-ref.txt
index 1997657..06d468e 100644
---
Junio C Hamano gits...@pobox.com writes:
Why would we want to unplug the task queue from somewhere else?
When you have a dispatcher more intelligent than a stupid FIFO, I
would imagine that you would want to be able to do this pattern,
especially when coming up with a task (not performing a
Stefan Beller sbel...@google.com writes:
Then please don't pick up this patch. This and patch 5 are there to convince
Jeff this is a good API, worth being introduced and not over engineered, just
solving a problem we're interested in with a minimal amount of code to side
track from the actual
Here are the topics that have been cooking. Commits prefixed with
'-' are only in 'pu' (proposed updates) while commits prefixed with
'+' are in 'next'.
You can find the changes described here in the integration branches
of the repositories listed at
On Tue, Aug 25, 2015 at 4:28 PM, Junio C Hamano gits...@pobox.com wrote:
* jk/notes-merge-config (2015-08-17) 6 commits
- notes: teach git-notes about notes.name.mergeStrategy option
- notes: add notes.mergeStrategy option to select default strategy
- notes: add tests for
Stefan Beller sbel...@google.com writes:
$ git tag --delete master
$ echo $?
# 0 # actually works as of today!
$ git tag delete master
# Due to the planned switch to command words, this doesn't work.
# For details see road map at `man git commandwords-roadmaps`
$ echo $?
# 128
On Tue, Aug 25, 2015 at 2:09 PM, Junio C Hamano gits...@pobox.com wrote:
Stefan Beller sbel...@google.com writes:
This runs a command on each submodule in parallel and should eventually
replace `git submodule foreach`.
There is a new option -j/--jobs (inspired by make) to specify the number
On Tue, Aug 25, 2015 at 8:13 AM, Junio C Hamano gits...@pobox.com wrote:
On Tue, Aug 25, 2015 at 1:01 AM, Graeme Geldenhuys grae...@gmail.com wrote:
Even though I have worked with Git since 2009, I still have to
reference the help to remind me of what parameter to use in certain
situation
Stefan Beller sbel...@google.com writes:
This runs a command on each submodule in parallel and should eventually
replace `git submodule foreach`.
There is a new option -j/--jobs (inspired by make) to specify the number
of parallel threads.
The jobs=1 case needs to be special cases to
Stefan Beller sbel...@google.com writes:
Not sure I follow there.
Original implementation:
We have M threads sitting around the table, all of them trying to obtain food
from the one bowl on the table and then eating it.
Once the bowl is all eaten, we can stop.
New pattern:
One cook puts
Hi Kirill,
On 2015-08-25 12:34, brillian...@inbox.ru wrote:
From: Brilliantov Kirill Vladimirovich brillian...@inbox.ru
Signed-off-by: Brilliantov Kirill Vladimirovich brillian...@inbox.ru
The commit message makes for an excellent place to fill in the reader on
information that is not
On Tue, Aug 25, 2015 at 4:28 AM, Junio C Hamano gits...@pobox.com wrote:
Junio C Hamano gits...@pobox.com writes:
Matthieu Moy matthieu@grenoble-inp.fr writes:
Karthik Nayak karthik@gmail.com writes:
diff --git a/Documentation/git-for-each-ref.txt
On Tue, Aug 25, 2015 at 3:43 AM, Junio C Hamano gits...@pobox.com wrote:
Karthik Nayak karthik@gmail.com writes:
+static void perform_quote_formatting(struct strbuf *s, const char *str, int
quote_style);
+
+static void end_atom_handler(struct atom_value *atomv, struct
On Tue, Aug 25, 2015 at 12:23 AM, Junio C Hamano gits...@pobox.com wrote:
Karthik Nayak karthik@gmail.com writes:
On Mon, Aug 24, 2015 at 10:57 PM, Junio C Hamano gits...@pobox.com wrote:
Karthik Nayak karthik@gmail.com writes:
...
+ performed. If used with '--quote' everything
On Tue, Aug 25, 2015 at 12:17 PM, Matthieu Moy
matthieu@grenoble-inp.fr wrote:
Junio C Hamano gits...@pobox.com writes:
You can see that I expected that if !state.stack-prev check to be
inside append_atom(), and I would imagine future readers would have
the same expectation when reading
On Tue, Aug 25, 2015 at 3:45 AM, Junio C Hamano gits...@pobox.com wrote:
Junio C Hamano gits...@pobox.com writes:
Karthik Nayak karthik@gmail.com writes:
+static void end_atom_handler(struct atom_value *atomv, struct
ref_formatting_state *state)
+{
+struct ref_formatting_stack
On 25 August 2015 at 16:43, Junio C Hamano gits...@pobox.com wrote:
I do not see a good way to do such a safe transition with command
words approach, *unless* we are going to introduce new commands,
i.e. git list-tag, git create-tag, etc.
Perhaps we could introduce a more explicit notion (in
On Tue, Aug 25, 2015 at 04:12:54PM -0400, Eric Sunshine wrote:
A little googling came up with:
awk 'END { print systime() }' /dev/null
which probably (?) works everywhere.
On Mac OS X and FreeBSD:
$ awk 'END { print systime() }' /dev/null
awk: calling undefined
87 matches
Mail list logo